|
|
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 |
- ********************************************************************************
% q5 l9 U4 O" x& u+ p% J' w. X' J8 O - * ACADLISP FOR AUTOCAD R.14 -> AUTOCAD R.2012 *0 n& u$ A" K. w/ q8 L0 {5 k! K1 `1 ~
- * Tran Ngoc Thang DHXD-HaNoi41 from years 1999 -> 2015 *
( o# r4 C. j* t/ E2 Y - * Suu tam & Soan *4 K4 ?" ?4 g6 d, S
- ********************************************************************************
: G. \5 Q% J0 A1 g+ @4 B! a - 0 b; s2 s. [* x6 l$ G: V: y
- ; Next available MSG number is 104
, r! C- A! |# K - ; MODULE_ID ACAD2000doc_LSP_( ~9 t- j q. N2 B8 U
- ;;; ACAD2000DOC.LSP Version 1.0 for AutoCAD 2000
7 D( B# H$ q; W v9 `5 \# _: F0 k - ;;;
2 P& Q; }5 x1 l( w - ;;; Copyright (C) 1994 - 1999 by Autodesk, Inc. b' ~7 l: e9 `( i1 L9 K! a9 w
- ;;;& c! [/ R" m6 f$ Y. A2 V
- ;;; Permission to use, copy, modify, and distribute this software
# K4 R9 @! j& [8 S& F% a - ;;; for any purpose and without fee is hereby granted, provided
' a! N! A0 [; A - ;;; that the above copyright notice appears in all copies and, w% P! ]% E! B8 A
- ;;; that both that copyright notice and the limited warranty and
9 x8 X4 {& B% c8 X" n - ;;; restricted rights notice below appear in all supporting
8 b" c2 S4 q$ P. R; m# X0 ~ - ;;; documentation.% D3 z3 ]3 P8 R
- ;;; ~4 g; m. Q% N& y' O
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.+ l Z+ ^ u: ]! f
- ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF# t, ?: G, V9 v) _& X+ `: ^: k
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.& u; o7 b7 |% R0 V2 X
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
; ^& r" [$ h: v( N) m - ;;; UNINTERRUPTED OR ERROR FREE.
1 z6 v3 N* ]5 D/ i6 X - ;;;
( X' A( Q6 V7 S# M! f9 [) n - ;;; Use, duplication, or disclosure by the U.S. Government is subject to, k1 b) ^: l* C$ u$ }. ]+ U
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
_4 [+ G8 I. m8 k! B - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) * d3 d2 V$ o- Q. l4 Z
- ;;; (Rights in Technical Data and Computer Software), as applicable.3 g+ n7 u, G3 c6 h6 r; F5 [
- ;;;' J8 @3 Z$ t& R _! A
- ;;;.
6 ^3 Z- C1 ^5 Y1 n! X: D& _ - ;;;0 N# P r' T% C! C2 V- _, H0 |% d, `$ [
- ;;; Note:
2 Z( g3 M; `' G - ;;; This file is loaded automatically by AutoCAD every time ' d' e o) ^3 x( q) t
- ;;; a drawing is opened. It establishes an autoloader and
# w1 u" ]3 c+ e9 w# Q& g) R - ;;; other utility functions.9 P" R2 P+ I) s1 x6 t1 b+ Q) G8 o
- ;;;+ v0 [0 B. x) Y8 V. p
- ;;; Globalization Note:
, @2 Z; E' e& `$ v9 v# F - ;;; We do not support autoloading applications by the native . e0 K0 t( L/ T1 `' {% n
- ;;; language command call (e.g. with the leading underscore, Q5 Q: A3 e& Y: w5 a
- ;;; mechanism.)8 [* W3 ] ~% x* g
! x4 j. ?4 v; n' U7 `- . X h. n' e5 H" s. s; j* S
- ;;;===== Raster Image Support for Clipboard Paste Special =====
; p6 L3 Y- D2 M" ^& Y - ;;/ U+ P* z# Y0 Z/ E
- ;; IMAGEFILE+ d8 C8 K" S- i& }, ~( @' O
- ;;9 K# z% M9 b* m. `. y
- ;; Allow the IMAGE command to accept an image file name without. G8 @/ p, c& b+ u/ O
- ;; presenting the file dialog, even if filedia is on.
$ ~0 A( R% U ~% E - ;; Example: (imagefile "c:/images/house.bmp"); ?$ v9 b6 C' R6 K* T
- ;;
+ m' E) y9 ^0 f: H - (defun imagefile (filename / filedia-save cmdecho-save)
8 e! |! X2 e5 o) R. @! v6 ?# | - (setq filedia-save (getvar "FILEDIA")), }- o; R/ { i, U& o, f! G
- (setq cmdecho-save (getvar "CMDECHO"))1 M2 o5 K; W8 u$ C
- (setvar "FILEDIA" 0)9 F5 K7 L' ?3 c1 S/ y9 `
- (setvar "CMDECHO" 0)' y5 W, v9 q9 Z6 n1 u
- (command "_.-image" "_attach" filename)
9 J% D5 V3 X3 L9 i" o7 t r* j+ X# s - (setvar "FILEDIA" filedia-save)
, C& m4 i) R6 f2 c: W* a - (setvar "CMDECHO" cmdecho-save)8 _: x+ j Y% F
- (princ)( ~- B( X" L$ R& O2 J, ~
- )
: `! U/ b, O* b6 O8 u) c
6 J+ b0 f6 W: V; A7 E% G- (defun c:zx () (command "zoom" ".5x"))
3 \! i( X$ D. @9 v6 _, a- M5 s. c( N - (defun c:zz () (command "zoom" "p"))
: O6 L3 c( r8 I: p1 E! F9 G- e - (defun c:za () (command "zoom" "a"))
6 S3 Q' J. ?+ ?& B$ n8 f - (defun c:zd () (command "zoom" "d"))3 D, T& j' r4 ^/ v
- (defun c:ze () (command "zoom" "e"))
$ ^: r& ?+ X- g C - (defun c:zr () (command "zoom" "" ""))2 E. @' x4 L5 y1 G- k# a
- (defun c:vv () (command "ucs" "v"))
) i3 D" }4 a7 R: p5 B4 U( ?8 I - (defun c:co () (ssget) (command "copy" "p" "" "m"))
6 w+ n1 R. z9 i6 j. a/ J" P - (defun c:c () (command "circle"))3 A% C s0 N; `# C b H
- (defun c:rt () (command "rotate"))
) c( q8 M% P2 L; }& R$ x - (defun c:3q () (ssget) (command "_rotate3d" "ANGDIR" "value" pause (princ)))4 K. {+ d4 [9 @; B7 Y, D
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))3 n# b! Q( w' \/ ~; e$ j" @
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30"))$ }9 ?% H0 G/ {! v! _2 B9 R
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
0 o* r; R* Y0 c2 a1 `! m' m - (defun c:r5 () (ssget) (command "rotate" "p" "" pause "5"))5 k' Y! L1 n/ v5 F' X
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60")); D7 l8 p3 P. M5 s- T# I
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))1 V2 m- k' a$ Z/ V$ M" e
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))
2 g4 g E0 x% H; R - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))5 D4 u g% r. t: M$ S# i+ t( ]7 E
- (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))7 c+ B7 [) r6 o
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))8 @3 G) M$ K3 S1 {
- (defun c:md () (ssget) (command "mirror" "p" "" pause pause "y"))
' m n# E, p5 T2 q# @! r - (defun c:fd () (command "find" "p" "" )(princ))(princ)4 \; q4 z! M( n6 g% A( F+ ?$ y
( [/ X& y' B: q/ b: }! M- (defun c:romantdim () (command "-style" "ROMANT-DIM" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)
8 G! w7 t) p+ Y# K4 X g - (defun c:romantext () (command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200""1""0""n""n""n"))(princ)+ }6 X8 H& L% \! ]/ o. o
- (defun c:vnhelvthuong () (command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1""0""n""n""n"))(princ)
5 ]3 b9 ?" P( e9 L5 H* c - (defun c:vnhelvhoa () (command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500""1""0""n""n""n"))(princ)
7 {; D" R$ F5 a/ ^( N8 L# H - (defun c:truc () (command "-style" "TRUC" "impact" "0""1""0""n""n""n")); ?* C2 T9 ]8 X; f; Q
- (defun c:chu () (command "-style" "VERDANA" "verdana" "200""1""0""n""n"))
9 V6 D, J+ @' `" a1 T - (defun c:cot () (command "-style" "COTES" "verdana" """1""0""n""n"))
7 V) L8 P: \) |7 n# P: ~ - 4 @5 y- v& Q, e# u
- (defun c:an () (command "-style" ".AVANT" ".vnavant" "200""1""0""n""n"))
& Y* `" a# u( U0 n9 ?# M, E4 ] - (defun c:ah () (command "-style" ".AVANTH" ".vnavanth" "200""1""0""n""n"))% b# y. r1 b# S/ ]: i+ [: ^$ Z
- (defun c:ha () (command "-style" ".ARIALH" ".vnarialh" "200""1""0""n""n"))* X$ u- _' H' p
- (defun c:na () (command "-style" ".ARIALNARROWH" ".vnarial narrowh""1200""1""0""n""n"))( U( Z2 S3 a7 z/ G+ w% ^
- (defun c:vn () (command "-style" ".VNTIME" ".vntime" "200""1""0""n""n"))2 }9 r y5 }. f) P' {6 \) d
- (defun c:vh () (command "-style" ".VNTIMEH" ".vntimeh" "200""1""0""n""n"))$ X$ _- O4 b" K
2 W0 R# V1 ]1 l+ n- (defun c:ps () (command "PSOUT" "CorelDraw-import-Photoshop" "W"))(princ);export the current view of a drawing as an EPS file% f: W t$ ^9 y& v
, h# N' b) T/ ?! H4 Y. C' O4 i- ;free lisp by cadviet,cd2k44) D5 Q, U* Z( O; J/ S& Z
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
% |6 C+ K- c) ]( R5 l: q* s - (defun c:FTEXT (/ ent tstyle )
/ J3 a0 l$ I; w. b8 t4 o - (command "undo" "be")
9 `& Y0 | N4 H S6 y2 o! n - (setq ent (entsel "\n Pick text :"))
' }0 ]! ` [3 \& @' J- h* K; w4 A - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))* Y3 A' E9 e" y" G
- (command "STYLE" TSTYLE "romant.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
! d" l- X6 K. n3 _( @6 ~6 _: n7 K - (setvar "TEXTSTYLE" Tstyle)
4 }5 g2 G A1 s7 }0 F! s. D - (command "undo" "end")
9 B& p+ r3 b* l# O - )+ \% X- P4 w1 l+ |* P! ^, i
- ;Cam on cadviet nhieu 27-11-2023 04h15p36s (thanks cadviet)
i4 o* T1 W! ]! k+ M - * J' j! e% J: t9 T" I
- ;free lisp by cadviet,cd2k44; f" s4 W) A [( Z1 ^ H% Q. B/ }
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
. R* Q: D0 |! t( j1 I! y - (defun c:Fvnh (/ ent tstyle ) b( D8 D: L$ |
- (command "undo" "be")
2 d" y' p& M7 W- m5 ]$ w8 [0 l- n - (setq ent (entsel "\n Pick text :"))
( f9 K0 L* P0 X - (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))$ J- k( B: R5 r! p
- (command "STYLE" TSTYLE "vnhelvh.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
+ H1 o, K5 A6 x% A - (setvar "TEXTSTYLE" Tstyle)) O7 I# _2 k7 i( [) ^/ h' e
- (command "undo" "end")
! L) W) ` x. r; o6 n! B& L p7 _$ g2 N - )" J. L8 U* H' x4 Q8 l% p
- , \4 \! L4 l, n! o
- ;free lisp by cadviet,cd2k44' ^! P E4 M4 b0 \/ d
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=53830
$ b n* w. [0 p& E - (defun c:Chbg (/ ent tstyle )! C1 x, b6 X" D/ N% a; Q
- (command "undo" "be")& @1 \+ D q3 ]
- (setq ent (entsel "\n Pick text :"))) i7 C# A3 S! `/ n m1 g. X
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))# M# G M( r& @+ [
- (command "STYLE" TSTYLE "chhbg.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
) s! L3 f8 [( U* i# C4 C - (setvar "TEXTSTYLE" Tstyle)
1 S% [. K; W% z! F- [, @ - (command "undo" "end")% k/ H7 y8 I5 _# z2 I+ w. K7 S1 [- l) C
- )
5 }! g B, u% _( P) w - 6 O1 g8 C, a1 ], t3 Z, [3 r" o
- ;free lisp by cadviet,cd2k44" k6 j. Q7 s5 |
- ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538301 @9 Q4 d3 L, {- h/ X; @1 Y
- (defun c:Chsm (/ ent tstyle )
5 Q! C! q& V1 }: n3 Y3 b, M, @8 k - (command "undo" "be")) x% X" N$ m$ B; L8 p
- (setq ent (entsel "\n Pick text :"))( T& Z- H; v2 H
- (setq TSTYLE (cdr (assoc 7 (entget (car ent))))), h# ?; d# v O
- (command "STYLE" TSTYLE "chhsml.shx,vnh.shx" "0" "1" "0" "N" "N" "n")
6 f2 D4 ?7 K2 r% M+ b$ g - (setvar "TEXTSTYLE" Tstyle)
1 |1 j0 y/ j2 k' X% Y/ x - (command "undo" "end")
% d+ n9 K" l, b4 ~9 [3 G* X @ - )+ B9 i* j. O4 |- E- O W0 V
- : t3 x5 n8 r1 r* m
- ;free lisp by cadviet,cd2k44
% [& a( L$ t" T: \: x, ] - ;link bai viet http://www.cadviet.com/forum/index.php?showtopic=538305 D5 x% u/ G, h- a) l) h
- (defun c:Fttf (/ ent tstyle )
& z/ x) ?0 H. n - (command "undo" "be")" m! T0 F* T! W% z9 e; V! X
- (setq ent (entsel "\n Pick text :"))* |7 D4 K2 U3 e4 H" t2 |
- (setq TSTYLE (cdr (assoc 7 (entget (car ent)))))
, a+ I; C2 J" z - (command "STYLE" TSTYLE "verdana.ttf" "0" "1" "0" "N" "N" "n")! u& {' {# f9 z$ p
- (setvar "TEXTSTYLE" Tstyle)
" w* ?5 r: t% B; g5 B3 v - (command "undo" "end")8 Y5 h* w* a0 y9 r! G) K
- )
! R6 g' g7 k9 u M' Y
/ B$ r% _) s! Q1 K9 Z2 _6 Y- ;;; ============================================9 _) @& A7 c; v3 R9 N/ Q: f1 r
- ;;;
7 l. u- E' z* |) b: ^# l7 e! t3 _# v' d$ } - ;;; LISP Creater Tao Duong Dan AUTOCAD2000 Y+ r/ J2 L# n, c1 J& F$ i
- ;;;. k$ |) w: {8 g$ y" y* T& \
- ;;; ============================================- g ?: m! l9 C$ l" u
5 |; ~& \- p+ _% H- ;;; ============================================
) W0 g8 X+ L1 n/ [+ l& y* f; O7 e4 h - ;;;
. _" n( f$ Y* E( C - ;;; CREATING FROM AUTOCAD2000
0 U b. V G1 Z& O - ;;;# | x: A% ~- e
- ;;; ============================================
6 A3 T' O8 @ ]7 L+ l# _ - 2 ~: z6 O" G+ {8 D4 x, D3 v
- (setvar "INSUNITS"4)
6 p$ V6 R) {; A k! J0 X0 R - (setvar "ANGBASE"0)
* f4 T) Z2 P/ k3 d7 _# M& u. ? - (setvar "ANGDIR"0)! v: o @6 F+ ^3 a9 d8 H
- (setvar "AUNITS"0)7 q0 n, G& p2 F% d. c, X
- (setvar "AUPREC"8)
$ S) e0 ~: a9 D2 n1 y3 ^: G - (setvar "LUNITS"2)
% ^+ @, E6 T" X+ x" E - (setvar "LUPREC"8)
1 {' T- L3 `# [7 b' v - (setvar "ACADLSPASDOC"1) : M X+ K8 E$ i# o& U, ^7 C
- (setvar "pickbox"5)
- u5 a. t& J7 ` - (setvar "blipmode"0)
' Q" r! |; X; D5 G - (setvar "mirrtext"0)
4 ]& z1 w; y9 s B0 O/ N: [1 D - (setvar "cursorsize"100)
- V6 O2 }0 b5 r9 O7 P; x - (setvar "ZOOMFACTOR"75)5 J: @$ o- b; P0 I& N, h' X6 J$ f
- (setvar "LTSCALE" 10)
, k3 N3 Q. S7 \; d& z4 D; v - (setvar "lwunits"1)
4 A2 x( k; C! `8 U! h0 o5 X - (setvar "DIMBLK" "Closed")2 k0 q/ ]% Y: I8 A
- (setvar "DIMGAP"0.0693)
/ |8 ]% V0 Z& v: W1 O - (setvar "DIMASZ"0.20)
. u! J( @# J0 K" J5 n) ]- ^ - (setvar "DIMCEN"0.2)9 C C$ l2 E+ Z
- (setvar "DIMDLI"0.1)0 @7 m" i( p$ ~ W) r1 a7 I- l
- (setvar "DIMEXE"0.0693)
$ q5 }/ V# S3 Y3 h3 n - (setvar "DIMEXO"0.25)
7 B) p/ H6 Q/ Q0 f4 Z V. _ - (setvar "DIMDEC"0)1 q+ z0 l) Y1 D1 j
- (setvar "DIMTIX" 1)4 `# j7 b+ m! `+ I$ O8 r
- (setvar "DIMTXT" 0.099)
3 c5 r, s6 d3 E+ q - (setvar "DIMCLRT" 7)( @+ K7 f8 z% ~% u( r7 M
- (setvar "DIMTVP" 1)2 b) }) i* T! }
- (setvar "DIMJUST" 0)
% e4 a4 a3 g, o- G: x3 m - (setvar "DIMTIH" 0)
% c0 i( Q* e4 Q. O' P - (setvar "DIMTOFL" 1)* N0 |" g1 {7 Q1 P1 j+ F) R
- (setvar "DIMSCALE" 1111.1111)
$ ~' o: h, g2 }4 o& [ - 9 j4 F, h- V. O/ r& R2 b) J
0 r! F8 s# F- d& q6 h6 G# b- 3 C0 M: S( t& l1 m/ ?# q; u
- (defun c:zp () (command "'.zoom" "p"))! I* U! L* M0 s1 f c6 W
- (defun c:zz () (command "'.zoom" "p"))) a; l( ^ b* v
- (defun c:ze () (command "'.zoom" "e"))
' p8 E @8 j1 Y* [ - (defun c:za () (command "'.zoom" "a"))8 ^! z2 r* s) R# L8 h, [
- (defun c:zd () (command "'.zoom" "d"))
& K X9 d, ]2 p - (DEFUN C:ZZZ () (COMMAND "ZOOM" ".25X"))
* C4 P/ A$ M4 ?. }5 V/ `: W - (DEFUN C:ZX () (COMMAND "ZOOM" "2X"))& w& a" T4 Q& G; u
- (defun c:de () (command "ddedit")(princ))
; R0 `1 C* |- A. N4 T6 E5 [+ s - (defun c:dda () (command "Dimaligned"))
$ |. o0 s% p5 V5 x# T0 m - (defun c:ddb () (command "Dimabaseline"))( E* c% l0 F$ b8 _ w! `2 W
- (defun c:ddc () (command "Dimcontinue"))
. e. s0 ]0 b/ ]7 J" [/ o+ E - (defun c:dde () (command "Dimtedit"))
1 d- K3 L; i4 [' ?7 O( ]+ g - (defun c:ddf () (command "Ddattdef"))
. M) ~" [; x1 D" `4 S5 J3 Z5 A - (defun c:ddi () (command "Dimdiameter"))4 k$ I2 [+ Z a5 k$ ?
- (defun c:ddl () (command "Dimlinear"))
" H$ K+ R+ H6 @$ y& ?) z4 n; Q - (defun c:ddn () (command "Dimangular"))
1 U7 E. R# E8 L: U" n! }+ W' p0 { - (defun c:ddo () (command "Dimordinate"))5 u, l) a Z6 N }# e$ i( `
- (defun c:ddr () (command "Dimradius"))
# H. A$ Z3 X; | ?, I - (defun c:dds () (command "Dimstyle"))" i4 F2 H; [) Q
- $ _) Y6 t3 y0 d* |! B) }
- (defun c:DU () (command "dim1" "up" "select" "exit" pause ))(princ)
7 i8 Y) F4 o+ s* E# h& I3 Y' c - (defun c:DH () (command "Dim1" "home" "select" "exit" pause))(princ)/ S4 L, L4 H. e0 B- k* x% d
- (defun c:UU () (command "dim1""update""all"))
6 [: o ~0 u5 m - (defun c:ded() (command "dim1""tedit"))% j3 M) ^3 z4 C* `4 E6 ]+ x
- (defun c:da () (command "dim1""ali"))8 A9 l" v8 k5 ]' P
- (defun c:dll() (command "dim1""l"))
+ t. v o% h0 L" o& R8 u% E: G2 p - (defun c:dan() (command "dim1""an"))
6 t( s2 ^; ~, `( c; n4 A0 ^8 c; k - (defun c:d1 () (command "dim1""ra"))+ x0 k3 C# T$ N1 Q) e3 N3 \
- (defun c:n () (command "dim1""new"))
5 G4 _/ L) J2 g' `* R
* s6 Y5 a. q: |, ]. W0 T- [- (DEFUN C:PE () (COMMAND "PEDIT"))
/ E9 y7 V) {! D/ e( j - (DEFUN C:PL () (COMMAND "PLINE"))
- { x2 d$ D# N# [/ p& P - (defun c:dd () (command "dist")(princ))) a( V1 Y0 `& b8 G4 D1 m
- (defun c:w () (command "pedit" pause "w" "au")(princ))
, I" G Z' ]( s. U* E5 I# C - (defun c:pg () (command "polygon" "polygon"))6 C: K6 N I/ r5 |7 A& d, a* g
- (defun c:el () (command "ellipse"))5 y. W% k( i7 i: P7 F, D* e: ~/ c1 Q' \
- (defun c:xe () (command "explode"))# ?- K1 d0 e- g& F7 K5 v
- (defun c:eex () (command "extrude"))+ ~. {* v5 |6 |4 W/ o" p
- (defun c:xg () (command "xline""a"))' p. O: j7 N1 b- O9 O7 A
- (defun c:xh () (command "xline""h"))( t' `2 f" T7 R8 l
- (defun c:xv () (command "xline""v"))
4 ?/ k' |5 l+ M# m U9 a5 o - 6 W/ o" J' X, z4 J# V% `. c
- (defun c:oc () (command "osnap""cen"))
$ y N3 f' V4 m0 o - (defun c:od () (command "osnap""nod"))% D# H4 H1 ?. J8 v
- (defun c:oe () (command "osnap""end"))9 c9 \. _6 w7 s+ C0 R( |! f$ E
- (defun c:oi () (command "osnap""int"))
+ Z# X5 T% o/ {7 g - (defun c:or () (command "osnap""per"))! k% H8 o, j$ q- L! H0 @9 ~( r8 u$ ^2 l
- (defun c:on () (command "osnap""none"))) |9 s9 v* g" N/ f X+ i1 l
- (defun c:oq () (command "osnap""qua"))
7 h# l7 c0 B; J1 E5 Z, { F - (defun c:om () (command "osnap""mid"))
/ _$ m- {" Q6 X L8 l9 r - (defun c:ot () (command "osnap""tan"))
- n$ z8 i1 q9 }1 f - (defun c:oin () (command "osnap""ins"))
1 e4 p) Y8 F+ ~; b* d, w. | - (defun c:oa () (command "osnap""nea"))
5 l5 w: o+ ^& \ K R - (defun c:ol () (command "osnap" "End,Mid,Cen,Node,Nea,Int,Perp,Qua")(princ))3 }6 K& Q' U2 i/ q: Q' g3 }. N
- ;(defun c:du () (command "dim1" "up" "s" "pick" "other"))
) s- h! u1 I& L; a- f9 q* d - ;(defun c:nn () (command "new" "y" ))
$ e: G6 {) g4 T5 l# x; F - + V$ m4 T. |* `# g$ P
- (defun c:/ () (command "limits"))
' W% O# F% L2 S9 b! e/ | - (defun c:`1 () (command "region"))+ |! L# Q, }- Q8 o. ]) v1 v5 b
- (defun c:`2 () (command "subtract")). c0 O3 K7 C5 F ] t
- (defun c:`3 () (command "union"))4 K" L3 A) v( K' _3 D: g
- (defun c:`4 () (command "intersect"))
* D1 l9 U6 e6 _+ V - (defun c:`c () (command "cal"))# I3 A0 h- [1 c/ u
- (defun c:`g () (command "Polygon"))
5 F2 d/ f( n; j - 1 G4 j- H" u3 D, ~$ m. M
- (defun c:lmi() (command "LIMMAX" pause "" "zoom" "all" )(princ))
6 O( U# x, h. g' w3 E, \ - (defun c:drt () (command "DRAWORDERCTL" pause "Integer" "" "" )(princ))4 S8 b; m3 G- t: c7 Q, e8 T
- (defun c:ip () (ssget) (command "print,_plot" ))(princ)( H. u/ L( ]! L( m3 {
- ; c; ?4 m4 x% V; H/ d
- (defun c:ddm () (command "ddlmodes" pause))
' R8 d: a/ w/ I$ ]
- O+ ~6 E# K) O$ q- (defun c:sha () (command "shade" pause))
. ]7 m' j' z" [( e) E0 a
6 }4 H) Y& S: v" t+ ]) a9 g- (defun c:sr1 () (command "surftab1" "p" "" pause))5 u7 q0 b- k: t0 K6 P4 a# ~/ V
- (defun c:sr2 () (command "surftab2" "p" "" pause))8 g. ~9 S3 ~/ Y, A* u' F2 E6 f
- ( `! Z5 H" V$ G+ {5 ^4 s/ d, B. K
- (defun c:ad () (command "audit""y"))
. ~# Q* q# O* q" g& E - (defun c:q () (command "quit"))
3 \; o: E; H" W4 Z- E) a - # V. U- [/ g7 Q4 U( o3 V
- (defun c:30 () (ssget) (command "rotate" "p" "" pause "30"))# `, `+ H9 X0 c) \( f
- (defun c:-30 () (ssget) (command "rotate" "p" "" pause "-30")). k: I6 J3 b( Q" a
- (defun c:45 () (ssget) (command "rotate" "p" "" pause "45"))
) ?$ j, h# M: h% j$ E# H5 y - (defun c:-45 () (ssget) (command "rotate" "p" "" pause "-45"))8 K2 ?1 I: U$ E" s3 M- S% U2 ?
- (defun c:60 () (ssget) (command "rotate" "p" "" pause "60"))7 N% Z y$ _* u+ N c& Y
- (defun c:-60 () (ssget) (command "rotate" "p" "" pause "-60"))/ U! h8 V f0 b: y8 @
- (defun c:90 () (ssget) (command "rotate" "p" "" pause "90"))6 g* P7 ]$ {! M" Y
- (defun c:-90 () (ssget) (command "rotate" "p" "" pause "-90"))
9 Z9 S ~5 Y3 M) F - (defun c:180 () (ssget) (command "rotate" "p" "" pause "180"))- {- y/ W+ R9 j. x9 w; r7 h5 ^
- y; P% B- D* f$ _- (defun c:u3 () (command "ucs""3"))
8 j8 P4 f, H: n0 c - (defun c:ue () (command "ucs""o""end"))
) S s9 Z2 W& a4 t8 n* Z* i - (defun c:ui () (command "ucs""o""int"))2 ^% s! N6 ]6 j* p- L2 M: z; x
- (defun c:um () (command "ucs""o""mid"))
* F& G. ?% Y; P. J$ I - (defun c:uc () (command "ucs""o""cen"))8 o. V& n6 Z5 h7 l4 R
- (defun c:uq () (command "ucs""o""qua")) c: A T" ?+ I3 Z
- (defun c:3s () (command "ucs""3"))
- X8 Z' `! o* i' i8 V3 j/ j - (defun c:sx () (command "ucs""s"))
, v0 V7 v) I6 {8 ^5 c+ d - (defun c:sf () (command "ucs""o"))
% [3 m% P- w/ C R. ^9 ~ - (defun c:sz () (command "ucs""p"))4 e( {, G- v: J% d' h
- (defun c:sr () (command "ucs""r"))1 f/ F/ J7 V2 u& T
- (defun c:sw () (command "ucs""w"))1 p- j( ~% K6 D
- (defun c:fv () (command "ucs""v"))
* r( \% U/ n/ R! l# b" a. ?4 |2 } - (defun c:ux () (command "ucs""x"))0 ^, m5 Z; O: h, |+ I
- (defun c:uux () (command "ucs""x""90"))$ u4 J4 k5 A% Z0 z- N
- (defun c:xxu () (command "ucs""x""-90")); x1 q# Z. A1 E- _* o& Y- v
- (defun c:uy () (command "ucs""y"))2 R6 m f* p& y5 }; L: v5 F
- (defun c:uuy () (command "ucs""y""90"))9 r! d% {) _0 t, V. @
- (defun c:yyu () (command "ucs""y""-90"))
# A4 B. A2 C% E, S! _7 U - (defun c:uz () (command "ucs""z"))
2 R' I+ k, z9 j+ F - (defun c:uuz () (command "ucs""z""90"))
8 ^8 W; x) T1 {( W( q4 C! X4 X - (defun c:zzu () (command "ucs""z""-90"))
0 ]4 f0 [) ]: z - (defun c:uci () (command "ucsicon" "Properties" ))(princ)1 l4 m& b, {7 ?: B6 k* J6 g
- (defun c:ucm () (command "ucsman" ))(princ)( ?3 H( A6 @' x+ W1 @9 f/ Q0 V5 ?
- & i4 Q; g9 A3 H( ?& N& L' S
- (defun c:sa () (command "vpoint""_non""-1,-1,1"))' q. C. J9 M( t9 A+ N5 o/ f/ X
- (defun c:sd () (command "vpoint""_non""1,-1,1"))
6 w% j# Q+ s0 `# y; Q - (defun c:se () (command "vpoint""_non""1,1,1"))
1 F! [1 q9 y7 Z. G5 s - (defun c:sq () (command "vpoint""_non""-1,1,1"))
3 u* i, L7 X. [; @0 h. D+ i1 O - (defun c:vc () (command "plan"""))
8 f ^& `# |1 L- e8 ^ o - (defun c:vd () (command "dview""all"))& L, K$ b9 M/ T
- 8 \3 I0 U6 _" E3 a5 n
- (defun c:TT0 () (command "tilemode""0"))6 q- ]8 B4 ]9 P/ k
- (defun c:TT1 () (command "tilemode""1"))/ O" y% c6 O3 L9 j# q
- 1 ]2 h1 X) L% ?! F% E) B- V
- (defun c:vt () (command "vpoint""_non""0,0,1"))
( k( u* \! x9 s, z! u - (defun c:vb () (command "vpoint""_non""0,0,-1"))
+ [. T D, L, a9 K - (defun c:vl () (command "vpoint""_non""-1,0,0"))6 Y" F+ q; e. s8 ?8 x B
- (defun c:vr () (command "vpoint""_non""1,0,0"))
M: J0 a4 a0 Q+ Y! ` - (defun c:vf () (command "vpoint""_non""0,-1,0"))
" S* D2 [/ _9 [8 y - (defun c:vk () (command "vpoint""_non""0,1,0"))4 j3 S; Z) h# Y( `
+ q: w: m! ^& x. N! g- (DEFUN C:MM () (COMMAND "MIRROR"))
. [. ~+ p5 c- a- m e s - (DEFUN C:MP () (COMMAND "MOVE" "P"))3 S2 f R% }2 m1 J
- 0 {) ]9 A2 ]- v" |& U1 A- q
- (defun c:mee (/ a)7 p$ E( O5 T7 n+ a
- (setq a (ssget))(command "move"a"""end"pause"end"))
9 e7 R( q% ]- u - (defun c:mc (/ a) Q) [* W& t, w
- (setq a (ssget))(command "move"a"""cen"pause"cen"))1 L: Q$ l" T( y% U
- (defun c:cc (/ a)
0 [- S- @" ]; p3 Y2 T5 u5 F - (setq a (ssget))(command "copy"a"""m"))
# a! R. m; P2 x, K# s/ V - (defun c:ce (/ a)- ]) [+ K4 o6 a* C
- (setq a (ssget))(command "copy"a"""m""end"pause"end"))' O- y- X4 ~; v+ ^0 u# b( A
- (defun c:cn (/ a)
9 T8 t: u+ S- j" E7 @% b - (setq a (ssget))(command "copy"a"""m""cen"pause"cen"))
8 Q5 t/ u" B Z! g7 ? - (defun c:tl ()(command "trim""l"""))
8 P, |2 R, @/ h. { - (defun c:tf (/ a)$ L" O7 V% ^; u3 `" j
- (setq a (ssget))(command "trim"a"""f"))
. w6 e9 d( S8 ?: e1 Z w4 T$ T - (defun c:el ()(command "extend""l"""))! Y- ~4 d$ H A# o3 {
- (defun c:ef (/ a)- n- d& w9 {5 ~6 W% F, U
- (setq a (ssget))(command "extend"a"""f"))
/ l0 i1 J1 B' }& {$ ` L
" q9 i3 _- y) i- v
4 ?0 \3 b& j. _7 M) ~$ {- (DEFUN C:110 ()(princ "\nChon doi tuong can offset ra 110.......") (COMMAND "offset" "110"))9 ?/ a9 R2 Q; o6 D* |9 {: F" m
- (DEFUN C:220 ()(princ "\nChon doi tuong can offset ra 220.......")(COMMAND "offset" "220"))
+ t4 L! M j! R - (DEFUN C:330 ()(princ "\nChon doi tuong can offset ra 330.......")(COMMAND "offset" "330"))
& b0 F- m4 J- [" {7 Y - (DEFUN C:400 ()(princ "\nChon doi tuong can offset ra 400.......")(COMMAND "offset" "400"))
8 Z. A* d0 m7 D* M& Z* j% E - (DEFUN C:55 ()(princ "\nChon doi tuong can offset ra 55.......") (COMMAND "offset" "55"))
$ C! F2 x) ]- U9 }! ?) u - (DEFUN C:600 ()(princ "\nChon doi tuong can offset ra 600.......") (COMMAND "offset" "600"))
+ B. R/ t! K, w ~ - (DEFUN C:700 ()(princ "\nChon doi tuong can offset ra 700.......") (COMMAND "offset" "700"))
& J* O! q# i' [. y: F - (DEFUN C:800 ()(princ "\nChon doi tuong can offset ra 800.......") (COMMAND "offset" "800"))
' Y! A0 u, M1 s5 o( e9 Z: S6 g - (DEFUN C:900 ()(princ "\nChon doi tuong can offset ra 900.......") (COMMAND "offset" "900"))$ r# t- `: l, n& Y
- (DEFUN C:1200 ()(princ "\nChon doi tuong can offset ra 1200.......") (COMMAND "offset" "1200")). Z( F0 R! J9 e7 x
- (DEFUN C:1500 ()(princ "\nChon doi tuong can offset ra 1500.......") (COMMAND "offset" "1500"))
0 F" E. G# R0 y. E$ ^4 _! [ - (DEFUN C:1800 ()(princ "\nChon doi tuong can offset ra 1800.......") (COMMAND "offset" "1800"))
$ Q* W* C4 E+ ]9 I3 e - (DEFUN C:2400 ()(princ "\nChon doi tuong can offset ra 2400.......") (COMMAND "offset" "2400"))" ]+ O M- f a
- (DEFUN C:3000 ()(princ "\nChon doi tuong can offset ra 3000.......") (COMMAND "offset" "3000"))! v6 \5 h$ t5 ~
- (DEFUN C:3600 ()(princ "\nChon doi tuong can offset ra 3600.......") (COMMAND "offset" "3600"))
, R2 R( w% m% t L I - (DEFUN C:4200 ()(princ "\nChon doi tuong can offset ra 4200.......") (COMMAND "offset" "4200"))
4 J( { d, O# r9 N' e( p& N - (DEFUN C:5000 ()(princ "\nChon doi tuong can offset ra 5000.......") (COMMAND "offset" "5000"))4 K6 E: [! B) y& e+ G* I
- 7 `, ^( q( a3 X$ g9 V8 @
- (defun c:mla () (command "-mledit""av"))
9 T' F; z! `" h - (defun c:mlc () (command "-mledit""mc"))3 z& l- w- X3 a+ `$ s
- (defun c:mld () (command "-mledit""dv"))9 }& R8 m3 s, f3 P
- (defun c:mle () (command "mline""end"pause"end"))$ ]: P! q6 D6 o e5 x" N
- (defun c:mli () (command "-mledit""ca""int"pause"int"))
+ ^3 M) O; l; b3 i9 R3 V - (defun c:mlj () (command "-mledit""cj"))" m& Q% {7 j P
- (defun c:mlt () (command "-mledit""mt"))
$ J3 y* B+ z' K5 F b# M2 V1 u. { - (defun c:mlk () (command "-mledit""ca""end"pause"end"))
7 s" s' V/ |6 f& M- D( W l, C - (defun c:mlw () (command "-mledit""wa"))
) z6 m; W. u: O! y
; I9 L/ ]: r8 j) I! l/ x. e s) H- (DEFUN C:DCA () (COMMAND "DVIEW" "all" "" "CA"))
; l' Y' b: R. ~+ M - (DEFUN C:DPA () (COMMAND "DVIEW" "all" "" "PA"))# E r0 I" X# ^# s4 I, j
- (DEFUN C:DPO () (COMMAND "DVIEW" "all" "" "PO")), S- j/ v2 C% ~9 v
- (DEFUN C:DDD () (COMMAND "DVIEW" "all" "" "D"))7 H7 E4 \+ `7 f" A( ?) _3 C+ O
- (DEFUN C:DZ () (COMMAND "DVIEW" "all" "" "Z"))5 R5 E) y, N& }. a- o
$ o& y) K7 l: v8 R6 A" J" J7 p* Z- (defun c:p0 () (command "pline""""w""0""0")) W" j" Q- p/ u/ c7 \5 s3 O' m
- (defun c:ot () (command "offset""t"))
+ q5 M9 k2 x* ]+ x - (defun c:t () (command "mtext"pause"j""bl""h"pause))2 m$ L5 [# P J' |; s9 t1 X
- (defun c:uo () (command "ucs""ob"pause))
1 F% q6 a$ D( w, |; Q - (defun c:f0 () (command "fillet""r""0"))
L( [3 R# q2 O1 K' |# r9 x9 v - (defun c:fr () (command "fillet""r"))5 i, |+ m4 S V9 v0 \' K/ x) N
6 B3 H0 R/ t# H- ;CHAMFER
$ o6 ^2 k6 Q5 \' {& B - (defun c:cf () (command "chamfer"))
$ E" s0 L6 i5 q+ b' M$ @% e. @$ I1 | - (defun c:cfd () (command "chamfer" "d"))% I! @/ W$ t- r9 S, U3 B
- (defun c:cf0 () (command "chamfer" "d" "0" ""))! R1 b# X& R) v& c* m R9 u: a
- 7 t6 y7 v9 E3 }& ~3 ~4 V; Z
- ;FILLET
3 g% n9 D9 m( ~! A5 m: h, z - (defun c:f () (command "fillet"))
$ H* ~- h2 ?" S# B. d - (defun c:fr () (command "fillet" "r"))9 z; b1 L6 v5 P) W! d
- (defun c:f0 () (command "fillet" "r" "0"))2 ]4 A G4 G+ Q6 N/ W2 z$ e! H
- 3 k7 c# A2 m1 R% Y4 B
- (defun c:OO () (command "oops"))6 O" L2 A# l2 w- t: }
- (defun c:dln () (command "dimlinear"))6 J4 v% ^% U7 Y, L# L" P0 K9 P/ _
- (defun c:dan () (command "dimaligned"))7 A2 q+ u( b, C7 N0 r
- (defun c:ddc () (command "dimcontinue"))
2 \( m& ^0 z+ x$ B. y. X" v* f' Z- o
3 U( {1 D% d' V+ I8 [$ y2 @% H- (defun c:sc () (command "scale" "auto")), v- G( A% Z. s; l$ U
- (DEFUN C:XO () (COMMAND "snapang"))
1 z$ o: Y/ `4 x8 Y5 Y* R/ K: ] - (defun c:cc (/ a)
' g, [; \1 e1 w - (setq a (ssget))(command "copy"a"""m"))
: V( {6 e( @) s - ( Z( ]& t! U' u7 Y% H/ m& z
- (defun c:PJ (/ a)
6 o e: w$ X: P( u - (setq a (ssget))(command "pedit"a"""j""all""y")). n6 N# l' s& J, K4 r' i$ a) {
- (defun c:JJ (/ a); v) R. t- y2 y8 _ G6 ?
- (setq a (ssget))(command "pedit"a"""j""y"))# k$ n8 V/ h" G) c& `
- (defun c:TN (/ a)
w2 I( G- s* r, V - (setq a (ssget))(command "change"a"""p""T"))* Y, ^; V5 o3 O7 Q
- # E3 `6 L. ?% k/ R
- T4 ~1 |. V+ t- E6 Q/ T& n+ \- ;=======================Tran Ngoc Thang - Tu nam 2000 - Hoc nam cuoi KTS . DHXD=========================( w8 w+ R/ I# B w
8 m" |' {: K x, Y% w6 P- (defun C:IB ()(setvar"cmdecho"1)' }( `+ C- a O# p" l
- (setq pt(cadr(entsel"\nSelect Block:")))( Q3 d% l( [9 T% R0 }/ t
- (setq e1(ssget pt))
3 H j+ t9 P7 {) R- L - (setq e2 (entget (ssname e1 0)))5 P2 `7 T J- u: P% x# k2 I
- (setq blname (cdr(assoc 2 e2)))1 i1 F" `& `) ]9 P
- (setq oer *error* *error* err2)(command ".insert" blname))6 d% O1 X, i+ y: K, K9 c1 s1 M8 H
- & N4 |, v: t E, L" ^7 f/ a
- (defun c:II ()
9 c2 z6 @8 `% `. s - (setvar "cmdecho" 0)
/ g2 Z9 |! H J1 R - (setq olderr *error* *error* myerror)0 I9 d; Q. w) \ g: D* {
- (prompt "\nSelect objects: ")
& g1 Z, A7 }) R - (command "select" "au" pause)
& m$ T$ [+ J, e$ a( C' d+ j( d - (setq sstxt (ssget "p")/ _6 Y1 ]5 K+ `4 V: x! e
- sslen (sslength sstxt)7 D0 u Z0 v! e9 P( D" {( l
- ctr 0- T0 N4 b9 {/ o" j4 Q9 M
- )3 b0 ], [4 D% J( c* i% I
- (command ".undo" "mark")
2 n; Q' J1 j9 j - (while (< ctr sslen)7 X2 C/ A; Y* {' v( T5 R
- (setq listxt (entget (ssname sstxt ctr))" l9 A0 z8 _! Z7 P
- txttxt (cdr (assoc 1 listxt))
& @+ `' J/ |+ D0 u - enttxt (cdr (assoc 0 listxt))( h9 O% i) Z9 S- R+ i d
- )
/ ~( l6 G8 Q- J" ^: X# p - (if (= enttxt "TEXT")
) e; P4 M# |7 R \8 W' r- p6 m - (progn
5 c- N6 F7 M2 C! A7 Y, O - (setq testxt (substr txttxt 1 3))
/ Y0 _7 J& E& l1 }% b - (if (or (= testxt "%%C") (= testxt "%%C"))
4 P. }! W! s& V - (setq newtxt (substr txttxt 4))
! x" b+ l- W# f- E+ ] - (setq newtxt (strcat "%%C" txttxt))
( T0 J( R5 j/ x5 n( K4 S2 i, Q - )" C/ n5 f/ ^) t' ? }
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
?# w, V7 J7 T4 i" L6 s% s - (entmod listxt)
; Q$ d, o9 V8 z - )
5 D( w, @5 s; x9 x& I2 e - )# W9 V: @+ _5 |* f
- (setq ctr (1+ ctr))+ j5 U9 ^; \: r4 p3 }0 N
- )
, Y) V% ~: N, t. q o6 M( z - (setq *error* olderr)
( E* j3 J( T6 V7 ~9 V/ B - (setvar "cmdecho" 1): ^' j8 j! t- D/ S
- (princ)1 V2 O# p) O+ ]$ G* ?1 Q& F" }, _
- )
- m' J }/ Q+ Z! B% I# R6 y - ( ~5 g8 p0 {5 [! M; }5 p
- (defun c:DG ()
5 x0 t" ^9 Z( C9 P - (setvar "cmdecho" 0)
* [. S: E: ~, j) f' A7 i0 Y G - (setq olderr *error* *error* myerror)
8 a1 v6 d# q) t$ x7 ~* o8 Y - (prompt "\nSelect objects: ")
. n$ K: e/ ?) d6 m7 i# I1 Z* S - (command "select" "au" pause)/ @1 _3 m% \. C# s
- (setq sstxt (ssget "p"); s7 e: |3 e+ i: q
- sslen (sslength sstxt)
; f2 z5 r( N+ w: n4 B - ctr 0
f/ r3 [7 [$ k7 V+ Q4 W - )/ m( `& q* l2 i6 j
- (command ".undo" "mark")4 i5 K+ |$ x! K
- (while (< ctr sslen)
7 |4 x0 o3 [8 \3 G8 i2 G# r - (setq listxt (entget (ssname sstxt ctr))
2 c& \4 o4 p3 E - txttxt (cdr (assoc 1 listxt))" P2 H3 H3 i. q
- enttxt (cdr (assoc 0 listxt))
& K! g, @6 Z" i' G! Q4 f - )
) ~' @3 ^. e% l% M: w - (if (= enttxt "TEXT")
/ y, |' A3 X. L( z - (progn' A: g8 `; B2 D
- (setq testxt (substr txttxt 1 3)); ~) R- X0 x2 T) v! ~; d( h
- (if (or (= testxt "%%d") (= testxt "%%d"))
% A8 _: R' \4 K `9 n5 _+ [ - (setq newtxt (substr txttxt 4))* K' u1 T8 D) ^2 ]1 q- u( |
- (setq newtxt (strcat txttxt "%%dC" ))( g; M2 y( V) Q8 h
- )# j+ L4 l! h7 b) [4 \! U' u
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
& C7 l/ ^& ?- x - (entmod listxt); a8 i6 U& W' m, g: S- `. ~' G, m3 y
- )/ ?+ m1 B* I5 B
- )
2 I2 W e, w; _! W' K5 c8 _ - (setq ctr (1+ ctr))" T: g3 ^4 i$ Q
- )' |. g& @. L4 O2 u7 e) S
- (setq *error* olderr), z1 e8 b- k6 E7 t- v' O6 y$ ^
- (setvar "cmdecho" 1)
. u0 J; I# S b! X - (princ)4 |" p8 `5 W- _8 \- T- @
- )
2 h" h: ~5 t! w
: r& [- J# p$ s. A# I- (defun c:PI ()1 ~0 K+ w0 H) }
- (setvar "cmdecho" 0)
& w2 m# J- T8 w, V2 l1 b6 X - (setq olderr *error* *error* myerror)
4 g( G+ `8 D4 ~% ?% N* Z0 H4 f$ b% D - (prompt "\nSelect objects: ")
. q Q9 I; Z# A+ B; Y* R - (command "select" "au" pause)6 Q. ^0 E" ]2 u- C! Z* P& H
- (setq sstxt (ssget "p")
/ [7 J5 q# C5 k- ^ - sslen (sslength sstxt)
: C# z ^7 i& {" k2 Q - ctr 0
) W# ]8 \9 ^ ^& y) H% M5 g' a7 c - )
" ~# ^- |/ m: Z! n( G; K* p - (command ".undo" "mark")
' b) k- h# e- A: \- {' R - (while (< ctr sslen)8 H& n* [* f" a3 t5 r; ?
- (setq listxt (entget (ssname sstxt ctr))
& g! q4 h9 U1 t- g9 q; ^( ] - txttxt (cdr (assoc 1 listxt))
* r8 ?/ y q/ C* Y - enttxt (cdr (assoc 0 listxt))
5 a' F: j" V8 h' i$ P - )" o7 y2 m# T4 A3 e- t
- (if (= enttxt "TEXT")
! g6 ]' l! m( Q( |6 j- p - (progn9 P$ ?5 M% ~& J) h; |8 N
- (setq testxt (substr txttxt 1 3))
7 H/ M; T8 r- Z! }+ E4 s0 Y, p - (if (or (= testxt "%%p") (= testxt "%%p"))9 L9 c/ S# U* `0 X
- (setq newtxt (substr txttxt 4))
$ L* ?* X; [& h9 N/ |3 E0 c - (setq newtxt (strcat "%%p" txttxt)); s+ O; |. d) r5 A5 M2 z! {. Z
- )$ I. p) _* l/ u! H' P
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))4 w9 u, U1 g; S1 h/ ]; t r, P6 X
- (entmod listxt)
7 D& F6 @" k9 g" Z6 k - )5 C5 N7 z' y4 }; s& t
- )
. d7 C8 G; T, A; z) w3 V1 d* D - (setq ctr (1+ ctr))
P$ ^; b* t& C! \2 s; R9 w - )5 Y( Z3 R; N p3 \% t* u+ I
- (setq *error* olderr)
2 O: J3 J, {1 V' Y. E+ a - (setvar "cmdecho" 1). V# n. ~5 L7 ^
- (princ)3 `7 p! \( J. o1 l8 P
- )
1 A- W9 }4 K7 M% O& @- o0 N; B
0 L0 H$ b/ \ K. v/ K- (Defun c:CB (/ a). g9 U5 C) O( M- ^; J. W
- (setq olderr *error* *error* myerror)
7 g% ]. F# c1 d - (setq ocmd (getvar "cmdecho"))
' h, Z* z, V: ]! y2 ~( m( ] - (setq oblp (getvar "blipmode"))
) {2 P2 N9 Z: g) U' M - (setvar "cmdecho" 0)' g8 @+ d9 c4 i1 E/ {
- (setq a (ssget))
6 D! q( s% z4 g9 W6 e, i# y - (command "CHPROP" a "" "C" "bylayer" "")3 q* d9 T/ Z' R3 v: j! e
- (setvar "cmdecho" ocmd): J( W9 h$ ]8 Z0 }* w
- (setvar "blipmode" oblp)
: N! a/ W6 @) U& v9 n - (setq *error* olderr)
1 E' r$ [8 J8 K0 V - (princ); k) R1 V8 o3 L4 p3 A, W# B7 p
- )7 H6 u& g% B/ B) g& d
! b1 [5 [1 }- X- (defun c:LCC (/ co43 obj23 la23)
8 h, ~/ f, x% Y6 k: L5 M2 z - (setvar "cmdecho" 0)
2 Z) r- y. a: w4 \! c - (setq co43 (getstring "\nNew color : ")); Y- Z% g9 i6 W9 \" x
- (setq obj23 (car (entsel "\nPick object on desired layer: "))); |8 N/ S' ^, c$ Y4 X
- (if obj23 (progn
: H4 x% ]# Y q3 ` o - (setq obj23 (entget obj23)); u$ `0 }$ s$ j# Y
- (setq la23 (cdr (assoc 8 obj23)))2 J* p+ `- ~3 P3 J5 d
- (command "layer" "c" co43 la23 "")6 o7 t/ u6 u) E
- )
5 Q! ~$ v: p; l - )
4 F7 ^' ?) f* K2 ~) Z9 u% @% x - (prompt (strcat "\nLayer has changed..." la23))$ W7 u+ l, B% l3 n
- (setvar "cmdecho" 1)5 g. t0 G9 T% ]# Z7 B2 J
- (princ)
p# d5 p5 h; [8 a* G - ) , }# t( L0 @% K* {4 N1 ^
- 1 H( W, ]9 D: |
- (Defun c:RP (/ a)
, r& J, Y4 j2 J+ W9 m - (setq olderr *error* *error* myerror)
, F! G# E' r: I& f9 s - (setq ocmd (getvar "cmdecho"))
; X9 I3 l: P5 ~ - (setq oblp (getvar "blipmode"))2 ~' d5 y) `, g" [. V
- (setvar "cmdecho" 0)& r9 @( E2 L: s# \& o: }. f% J2 h
- (prompt (strcat "\nUSE: Delete object(s) belonging to"" M; q4 Q8 D* s! m- Y: Z' y# l, \6 K; w9 `
- " the layer of the entity picked...!"))( z% s; S! ]3 ~
- (setq a (entsel "\nPick the entity with the desired layer to delete: "))
7 p; Q' ]# p7 q - (if (/= a nil)
{( q k; A- P! `) L! D - (progn (setq a (cdr (assoc 8 (entget (car a )))))3 e3 P# b3 d, n2 {2 r
- (command "Erase" (ssget "x" (cons (cons 8 (eval a)) tempword)) ""))5 u5 k- ^/ b/ M$ P* v
- (prompt "\nNo entity selected!"))
6 p4 Y, m% s( ]: _ l% _# b8 ` X - (setvar "cmdecho" ocmd)
% @: C; ~" C) c( T - (setvar "blipmode" oblp)- W* n! l* @ |& _, N8 ^9 s% u
- (setq *error* olderr)- x6 [; g; l' Y& u' k: ]& M7 J3 h
- (princ)
4 D7 h5 b% x- S+ I$ X - )
/ w7 {) l5 s$ k
8 D5 C( A0 Z) _- (DEFUN C:WL(/ SSET NET SSL M)
# s. g; F( Y4 x" t- u6 i) i - (PRINC "\nSelect lines :")
: E* ^# |- m6 Y. K - (SETQ SSET (SSGET))
7 V# W+ K, C% x) R+ Y! D! J# k - (IF (/= NIL SSET) (PROGN. P( C' w5 W8 E ]
- (SETQ SSL (SSLENGTH SSET))
+ y, k8 ~* L' v' J$ Z - (INITGET 4)1 @5 v0 t# @% F5 l, J
- (SETQ NET (GETREAL "New width : "))# G% |1 b6 Z. ]. D
- (IF (/= NIL NET)
+ ]& X" H( T" {& K0 L& l) u' H1 e - (WHILE (> SSL 0)
* V6 n! b4 G7 ]1 r) q0 i: m3 F& \3 m - (SETQ M (SSNAME SSET (SETQ SSL (- SSL 1)) )): j$ e0 j, g3 y
- (IF (= (CDR (ASSOC '0 (ENTGET M))) "LINE") ' v3 A3 P v. P' s+ {
- (COMMAND "PEDIT" M "Y" "W" NET "") & U+ }0 V! l8 x8 c0 x3 M
- ) " t! `3 `+ U1 ]0 U5 N1 P) a
- )
: K# Y% q: k5 Q0 X - )))
1 [1 w2 a4 ~5 o; _/ [; w - (PRINC)3 g; ? V4 W& Y+ l* I" a6 A
- )* \3 j& y4 ?. ^: R
- l# F0 t. [5 r, y, q- (defun C:MML (). r4 R4 ~, F+ ^2 H" M
- (princ "\nSelect objects to move to another Layer.")6 H. A% ~* c8 E, w: T0 `, i. l7 O
- (setq ss (ssget))
. x W5 d: s2 ~% R, V1 W2 V - (SETQ UL1(GETSTRING "\nLayer to move entities to : "))
0 Q9 i0 T) O* g2 Y* {! P6 T - (setq counter 0)5 M& E+ Z, \4 l- U0 Y! S. P `
- (prompt "Moving to layer.....")(princ ul1)7 D, V4 Z8 G2 ]' D& e \
- (setq e (ssname ss counter))
3 A0 l* B: |. |0 ?% J# A3 | - (setq l (cdr (assoc 8 (entget e))))
9 T- x, L0 R4 s" V5 x - (setq S (ssget "X" (list (cons 8 l))))) E9 q! J8 T, F9 ^8 s
- (command "CHANGE" ss "" "P" "LA" UL1 "")& D0 O; C' f5 C9 T& `
- (setq counter (+ counter 1))
; A1 w# d1 c) d. A0 E+ P - (princ)6 X# u3 R$ X1 g% }( X- B
- )
( c. K0 c" d$ z, T
9 F8 k5 {4 ]1 K! P9 ?5 O- ;;; ================================ GHI CHU ============================
# |: h4 b1 a! v) K' Y% }3 s - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
) J1 o0 ?* S9 ^ - ;;; =======================Thuong Dung Font Romant.vnh===================; p5 Y" [! D0 A
8 y+ t; T L0 v# C- (defun c:RS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
( Q2 Y/ s9 u* D$ ^+ `5 }7 {8 j; @ - (setq oer *error* *error* err2)% F8 B' o* \/ W
- (PROMPT "\n(UNICODE-Verdana)(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. (M)aster Bedroom. ")
) a: i9 X4 j5 @# Z ^7 U - (SETQ Cpt(GETSTRING "\n (ROMANT-vnh)(DD).(SS).(LL).(CC).(OW).(KK).(BB).(MM). (UNKNOWN-font)(oD).(oS).(oL).(oC).(oww).(oK).(oB).(oM)."))$ S$ { g# b* B3 y! v
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nha` Bê´p"))3 s) c% z: g) g J
- (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Pho`ng Vê? Sinh"))2 h) b& r& e- V% b6 }2 q
- (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Pho`ng Ho?p"))) ]% t/ P5 a8 M1 h. S. `- u
- (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Pho`ng La`m Viê?c"))
( C. m6 j6 H, z - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Pho`ng Ngu?"))
0 [, L# T9 y8 p" D& \: \+ o2 ^ - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Pho`ng Bê´p + An"))7 I: Q' y3 E6 d7 F. Y3 Q' Y" u
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nha` Kho"))
9 R4 c$ r8 x+ i( j8 R5 \2 h0 X - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Pho`ng Ðê? Ðô`"))
7 m% H* N" J6 ~
# D. m( i, j# g4 g1 Q+ l. E" A- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))
, J$ f5 T& {" J2 n0 } - (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))7 [0 b; [ R. m% R- N
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
% e0 W3 V* B, Q - (IF(OR(= cpt "OW")(= cpt "ow"))(SETQ CPT ' "Phßng Lµm ViÖc")), I/ o, u+ v8 e, A% e* L
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))0 J% q2 J# S% s3 O3 s- C' C3 E( T
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n"))5 f: W; q; @8 q! u! |8 z
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
' r5 s9 e! A' ]1 C3 ^: ] R/ B6 i - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))/ L% e8 E, t3 H; o7 k: `
- % R$ @. b- ^% z. J1 z3 P' ]
- (IF(OR(= Cpt "oK")(= cpt "ok"))(SETQ CPT '"NHA/F BE/M/SP"))' i. U9 Y/ }1 F* e5 K* F+ G* b
- (IF(OR(= cpt "oB")(= cpt "ob"))(SETQ CPT '"PHO/F/NG TA/W/SM"))
# ?9 J1 J$ _* j3 s8 C - (IF(OR(= cpt "oC")(= cpt "oc"))(SETQ CPT '"PHO/FNG HO/JP"))+ O" Y7 z5 k; y8 ?0 @4 L0 V9 M( n" C
- (IF(OR(= cpt "oww")(= cpt "oww"))(SETQ CPT '"P.LA/FM VI/E/M/JC"))6 Q5 ^* }, [1 [+ s
- (IF(OR(= cpt "oM")(= cpt "om"))(SETQ CPT '"PHO/FNG NGU/R"))# X! k& n, X% H
- (IF(OR(= cpt "oD")(= cpt "od"))(SETQ CPT '"PHO/FNG A/WN"))6 P! B" ]5 y# Q' g% F. B
- (IF(OR(= cpt "oS")(= cpt "os"))(SETQ CPT '"NHA/F KHO"))1 k( h. {8 `% `7 l: U! J
- (IF(OR(= cpt "oL")(= cpt "ol"))(SETQ CPT '"PHO/FNG /DO/M/F"))! e R* ^) J/ j1 r$ Q. U1 h
- (setq pta (getpoint
/ e7 y- T& t z: K/ Z) g9 i, N3 p* \4 H - "\nPick first corner. : "))6 W+ s( d4 h* S" a# V$ ?
- (setq ptb (getcorner pta3 e# C3 g: l* {: l" u4 I9 |
- "\nPick second corner. : "))
. F: I" A/ e$ v8 W+ k - (setq ptc (list (car ptb)(cadr pta)))# f3 P/ k: @. @' X! @& V
- (setq ptd (list (car pta)(cadr ptb)))1 w+ ~) k; C' q2 G: [
- (setq ang (angle pta ptb))4 i5 z K" A3 |
- (setq d1 (/(distance pta ptb) 2))
' Q* K- U4 l* R2 N' x1 H7 m& W - (setq cp (polar pta (- ang (dtr 0)) d1))
) A( x( [. N% }3 F+ L - (setq X (distance pta ptc))
4 f5 p0 o* b$ _/ { - (setq Y (distance pta ptd))
& q9 ^$ j- c( n7 [8 g- q6 H - (setq X1 (rtos x 2 1))
) I- j9 @: X9 f- l8 @ - (setq Y1 (rtos y 2 1))( h' k1 k/ ?( ?2 f4 Y% s
- (setq rmsz (strcat "(" X1 " x " Y1 ")"))
$ I* {" r7 V; R. |. Y; H - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz))% j2 k* [) |) B- R' h
- (defun dtr (angg)
" G0 v" @: G9 b2 N4 j: @( ` - (* pi (/ angg 180.0)))
2 x q& ]3 L* z" m" n m - e( x# E% D/ f9 i1 D$ s1 K6 V
- (defun c:WS (/ pta ptb rmsz pl1)/ Q4 R1 i. Q. U1 d; Q) X) d7 y
- (setq oer *error* *error* err2)
/ T" E, `& ?! q0 ]* H) l0 |8 q$ U: ] - (PROMPT "\n (RomanT.TXT)floorp(L)an.(E)levation.(S)ection.(M)planFoundation.(C)Found.(K).(P).")5 m0 {: V9 ^8 m$ v* ~: d
- (SETQ Cpt(GETSTRING "\n (VnHELVH.Vnh)(LL)floorplan.(EE)elevation.(SS)section.(BM)planFoundation.(CM)foundation.(KC)Structure.(PP)perspective.")): [- s h/ i( g* m/ f: |0 ^8 n
+ @- B0 z, O* ~0 j2 \: ~* p$ H+ g- (IF(OR(= Cpt "LL")(= cpt "ll"))(SETQ CPT ' "MÆt B»ng TÇng 1 : TØ LÖ - 1:100"))
& y' b' |$ h- x8 W: {/ { - (IF(OR(= cpt "EE")(= cpt "ee"))(SETQ CPT ' "MÆt §øng Trôc ?-? : TØ LÖ - 1:100")); s, f; @' Q* m) z x0 T/ s5 ], l# l
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "MÆt C¾t A-A : TØ LÖ - 1:100"))* C. R0 n# r) K) @# A/ s
- (IF(OR(= cpt "BM")(= cpt "bm"))(SETQ CPT ' "MÆt B»ng Mãng : TØ LÖ - 1 : 100"))
1 @' j/ h6 q$ e - (IF(OR(= cpt "CM")(= cpt "cm"))(SETQ CPT ' "MÆt C¾t Mãng : TØ LÖ - 1 : 100"))/ R v/ B9 M6 f+ C
- (IF(OR(= cpt "KC")(= cpt "kc"))(SETQ CPT ' "KÕt CÊu Khung Däc Nhµ : TØ LÖ - 1 : 100"))% B( k1 E3 Q8 {2 I9 H" o8 [3 s
- (IF(OR(= cpt "PP")(= cpt "pp"))(SETQ CPT ' "Phèi C¶nh Mét Gãc Nh×n")); P! Y% U: e2 I+ h% n* T
- - I- S5 @7 z' W& E w# z
- (IF(OR(= Cpt "L")(= cpt "l"))(SETQ CPT '"MA/W/JT BA/W/FNG TA/M/FNG 1 : TI/R LE/M/J - 1:100"))
% T! m W( N) i2 \ - (IF(OR(= cpt "E")(= cpt "e"))(SETQ CPT '"MA/W/JT /D/}/SNG TRU/JC ?-? : TI/R LE/M/J - 1:100"))' `4 L) F9 d. W/ A0 p+ u. l; P, \
- (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT '"MA/W/JT CA/W/ST A-A TI/R : LE/M/J - 1:100"))& X. G; }3 ~/ G8 M0 D5 r, A$ T
- (IF(OR(= Cpt "M")(= cpt "m"))(SETQ CPT '"MA/W/JT BA/W/FNG MO/SNG : TI/R LE/M/J - 1:100"))
; O' w2 c) ?8 H l - (IF(OR(= Cpt "C")(= cpt "c"))(SETQ CPT '"MA/W/JT CA/W/ST MO/SNG : TI/R LE/M/J - 1:100"))" ~( ], C- t! P- B* U
- (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT '"KE/M/S/T CA/M/SU KHUNG DO/JC NHA/F : TI/R LE/M/J - 1:100"))6 F! P# [# o2 J. F" p
- (IF(OR(= cpt "P")(= cpt "p"))(SETQ CPT '"PHO/M/SI CA/R/NH MO/M/JT GO/SC NHI/FN"))
$ P: B6 S: l! d1 }* k0 v; T - (setq pta (getpoint
' e& L) T1 o7 t- y4 A8 H5 b - "\nPick first corner. : "))3 }! U- `: ?. \" a$ H
- (setq ptb (getcorner pta
! q* A$ L% x- R$ ~, n - "\nPick second corner. : "))
4 q$ M8 v: t3 z$ N* o - (setq ptc (list (car ptb)(cadr pta)))# A" _$ `7 s4 e/ o4 f z: F
- (setq ptd (list (car pta)(cadr ptb)))% B: M' f0 X0 D' ^7 b( J9 M
- (setq ang (angle pta ptb))1 l" Y( d4 v, h
- (setq d1 (/(distance pta ptb) 2))+ F. ^8 l! u U% B) B/ Y }/ k
- (setq cp (polar pta (- ang (dtr 0)) d1))
/ R% {% r& h1 S, d - (command "TEXT" "c" cp "0" CPT "ROMANT-TEXT" "" rmsz)): T! S% c& _+ k" p K
- (defun dtr (angg)
3 n3 y: p y, M( |3 V, x5 c - (* pi (/ angg 180.0)))
( j h* y7 m J7 h/ U4 p+ H8 b& Q2 t
* J* H# ~, Q) i- ;;; ================================ GHI CHU ============================
' p* A$ @& ^- l p - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========/ P; Y* j0 a! o! `6 K
- ;;; =======================Thuong Dung Font Romant.vnh===================
% \4 _; D: L D; z2 f6 [
; l, m2 Z3 z& ~: s( e8 ?- (defun c:RRS (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
" u" I4 O$ \: i+ p - (setq oer *error* *error* err2)' D& S: R( D4 P. G
- (PROMPT "\n(D)ining room. (S)torage. c(L)oset. (C)onference. (O)ffice. (K)itchen. (B)ath. ")
8 X$ i8 [0 ]& u! v7 d - (SETQ Cpt(GETSTRING "\n(M)aster Bedroom. (DD). (SS). (LL). (CC). (OO). (KK). (BB). (MM). "))
& a6 i$ {4 X0 i9 v; A3 C# l - (IF(OR(= Cpt "K")(= cpt "k"))(SETQ CPT ' "Nhà B?p"))
, S! D. @% G+ u3 t; [& C, ^9 ], d - (IF(OR(= cpt "B")(= cpt "b"))(SETQ CPT ' "Phòng T?m"))
6 T- P+ l E2 m; G. E. K7 i2 A+ G - (IF(OR(= cpt "C")(= cpt "c"))(SETQ CPT ' "Nhà H?p"))
9 {5 b: {2 l: d) s5 h7 } - (IF(OR(= cpt "O")(= cpt "o"))(SETQ CPT ' "Phòng Làm Vi?c"))
& q; n. m( N w - (IF(OR(= cpt "M")(= cpt "m"))(SETQ CPT ' "Phòng Ng?"))
: Y3 q. s" h4 }$ Z" I- | - (IF(OR(= cpt "D")(= cpt "d"))(SETQ CPT ' "Phòng B?p-An"))
& G; B0 A! n" x3 t& y6 N! N - (IF(OR(= cpt "S")(= cpt "s"))(SETQ CPT ' "Nhà Kho"))
! g7 n0 z: [2 a+ U# c" I' R - (IF(OR(= cpt "L")(= cpt "l"))(SETQ CPT ' "Phòng d? Ð?"))2 \5 \+ u" R" s
- (IF(OR(= Cpt "KK")(= cpt "kk"))(SETQ CPT ' "Nhµ BÕp"))9 K& s# y; U8 p% j- B5 N+ x% n
- (IF(OR(= cpt "BB")(= cpt "bb"))(SETQ CPT ' "Phßng VÖ Sinh"))' u. E v- I( d T/ H2 D* `( Q
- (IF(OR(= cpt "CC")(= cpt "cc"))(SETQ CPT ' "Phßng Häp"))
% q* p0 s; v1 g - (IF(OR(= cpt "OO")(= cpt "oo"))(SETQ CPT ' "Phßng Lµm ViÖc"))$ s1 d! L2 U2 J" V3 N, U7 x& j
- (IF(OR(= cpt "MM")(= cpt "mm"))(SETQ CPT ' "Phßng Ngñ"))& l" t- _& G; Z5 @: u. X5 d
- (IF(OR(= cpt "DD")(= cpt "dd"))(SETQ CPT ' "Phßng BÕp-¡n")). t4 r N7 ? d( [8 \& z3 U
- (IF(OR(= cpt "SS")(= cpt "ss"))(SETQ CPT ' "Nhµ Kho"))
* v4 u( P: y5 d8 E) l) h - (IF(OR(= cpt "LL")(= cpt "ll"))(SETQ CPT ' "Phßng §Ó §å"))
1 H+ `* r3 E/ u& Y - (setq pta (getpoint8 I( a1 l1 C4 B9 W/ _
- "\nPick first corner. : "))
6 h% J9 b( \+ [+ L8 ^ - (setq ptb (getcorner pta1 H/ l+ @. G8 c8 g% a& `" Y
- "\nPick second corner. : "))2 i+ _5 T1 V1 w. i/ \2 B5 G
- (setq ptc (list (car ptb)(cadr pta)))! R8 M9 h" A5 x; _! ~3 `7 y" P
- (setq ptd (list (car pta)(cadr ptb)))
) @' T3 R7 H7 l6 R9 \ - (setq ang (angle pta ptb))# T( s6 y6 E+ l6 o. K
- (setq d1 (/(distance pta ptb) 2)) N! x* [- U1 i) r. y
- (setq cp (polar pta (- ang (dtr 0)) d1))* S' _. c" e+ A, `0 B
- (setq X (distance pta ptc))
( C" {! c1 I# l - (setq Y (distance pta ptd))
3 o) w! G S4 H! b+ h) \1 _ - (setq X1 (rtos x 2 1)); ^# Q3 N0 o: c( a# r. G. X
- (setq Y1 (rtos y 2 1))
, O# y5 b3 Q) f) N1 z* d6 K - (setq rmsz (strcat "(" X1 " x " Y1 ")"))
+ C3 y% s- w8 C) ], u6 z - (command "TEXT" "c" cp "0" CPT "text" "" rmsz))2 S" Y j) G8 E b5 _+ U
- (defun dtr (angg)3 U v6 p# `* K- I8 C! k) U0 V4 x( J
- (* pi (/ angg 180.0)))
6 j6 {; z5 V H
" o% Q, {2 y+ r- ;;; ================================ GHI CHU ============================, @+ N7 \3 F: q& U
- ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
. c3 g1 e0 ]: M; E; K5 L - ;;; =======================Thuong Dung Font Romant.vnh===================! K; r6 O5 P5 O3 ]7 W' _- Q; j
- # b, ], `. _7 M& n" H! M( j
- (defun c:GS (/ a b c d)1 n7 I; U$ \0 S. W% U# u
- (graphscr)
. `6 Z$ A# ] H. j - (prompt "\nSelect text to set style....")
' ^4 [ X0 B6 Y8 l5 i- a - (setq a (entsel))! R3 L0 X% \+ L6 n
- (setq b (entget (car a)))
; I# ]) @6 E8 p4 |! }- E - (setq c (cdr (assoc 7 b)))/ d; n& c, F7 c% `
- (setq d (cdr (assoc 40 b))), L; q2 |' k& s _+ M! Z
- (command "style" c "" d "" "" "" ""))' X6 a( b; G" H% z
- (princ "\nType GS to set text style.")
& ~; A3 F* `; I - % C4 o/ J2 r+ n o, J: U: u( U8 L
- (defun c:RC (/ olderr ocmd oblp pt1 pt2 pt3 pt4 l w)) g3 @" N) U; s2 @& N5 b
- (setq olderr *error* *error* myerror)
: m9 s: L+ U7 V3 G - (setq ocmd (getvar "cmdecho"))* u* f, x$ \2 t/ _3 U0 G1 t
- (setq oblp (getvar "blipmode"))
( M2 p$ }5 T7 ^" a - (setvar "cmdecho" 0)
) Y' |7 p& k0 ?; l- J# d d - (initget 1) ;3D point can't be null: {8 K. {( q. |6 f( w4 b* r. z) H* P
- (Setq pt1 (getpoint (strcat "\nCorner of rectangle or square: ")))' J6 @( I! I' O) [$ h; O
- (setvar "ORTHOMODE" 1)) O. j% [0 W$ X$ p
- (initget 7) ;Length can't be 0, neg, or null V" j2 c6 T' v9 E4 a
- (Setq l (getdist pt1 "\nLength: "))& e; U, Z; W: N6 @" ^6 C$ j
- (Setq pt2 (list (+ (car pt1) l) (cadr pt1) (caddr pt1)))
0 [7 ]( _/ c# O- f* j, N! ~ - (grdraw pt1 pt2 2)6 l5 T: @% ]5 t4 h7 b
- (initget 7 "Square") ;Width can't be 0, neg, or null
7 z) j: u/ s1 o5 N% k4 L - (setq w (getdist pt1 "\nSquare/<Width>: ")). {, F1 }+ S3 J
- (if (= w "Square")
, M2 g! w- j$ t- K' w1 B - (setq w l)' p; w+ Z+ O6 G* o2 M
- )
, f- i" f. ^* Y$ ]( k2 @ - (setq pt3 (list (car pt2) (+ (cadr pt2) w) (caddr pt2)))
3 X+ w, Q. v1 q; T. u$ M' m* t2 U - (setq pt4 (list (car pt1) (+ (cadr pt1) w) (caddr pt1)))
) z6 H) c: V; Z" F/ _% n' T - (grdraw pt2 pt3 2)
' |$ y6 u/ i* L" q - (grdraw pt3 pt4 2) ]' b9 h& [# u- W/ |! ], H
- (grdraw pt4 pt1 2)
- E9 l7 |! b7 k3 \) V! C - (setvar "ORTHOMODE" 0)
& d# |3 X- W" o1 h9 y1 q- u+ ] - (command "pline" pt1 pt2 pt3 pt4 "close")
4 C& B$ }$ i, T- D- y- { - (setvar "cmdecho" ocmd)& K, b7 W* v6 I) D& d5 Y
- (setvar "blipmode" oblp)
" b8 C9 F; `4 Z! V' @ - (setq *error* olderr) ; Restore old *error* handler
9 r/ R7 ]9 t7 ~' P - (princ)
8 G6 m6 {) m4 P T- P: K: ]; O - ) a0 m8 _* Y8 ]0 H+ J6 T- Y% _
- 1 N. \. H Q) ]# p: w$ ~, b9 T
- (defun c:SG (/ ent pt1 pt2 ang)! N9 N6 p0 }$ P! E5 e
- (setq cmd (getvar "cmdecho"))
; a! ~6 k0 [. V2 z2 S1 K' }) p8 [ - (setvar "cmdecho" 1)
: ~* y' t8 s9 G; y) t2 m6 O$ B - (prompt (strcat"\nSnap angle will be set to angle of line"))
7 T7 e O: z9 e( z% W - (setq ent (entget (car (entsel))))9 F3 R2 T. h4 @0 Q. Z& x
- (setq pt1 (cdr (assoc 10 ent)))
" n. G' j' X8 z! N4 N - (setq pt2 (cdr (assoc 11 ent)))
1 I3 C' R5 P. h8 [: i* Z - (setq ang (angle pt1 pt2))& j( N( b6 m: D6 C6 b
- (setq ang (/ (* ang 180.0) pi))0 L- G) B) T9 T9 j: H
- (setvar "cmdecho" 0)1 x( E: }. q0 G# j8 B
- (command "setvar" "snapang" ang)- N1 Z1 b! V# n. N1 y3 Z! N
- (setvar "cmdecho" cmd)" X* O$ d8 s0 \( l
- )
- z: N8 u- b" B V, }1 T - 1 K3 a% ^% o: |4 d9 Q% {5 ~+ d+ C( p \
- (defun C:TG ()
" {) _" G3 }$ q8 K3 {" |6 x - (initget "Increase New")+ S! N6 F4 T9 f! A& {. ~8 w
- (setq ans (getkword "Increase/<New>: "))
6 y9 k o6 p& t' s1 H* | - (modang)
$ Y) _. A( e4 k - )& Q& c. W5 W: r
- (defun modang (/ ang ss ca e na ssl)
( p8 M" z( c* D/ R - (if (= ans "Increase")
. q; _& p0 I. W+ k$ p) l - (princ "\nIncrease angle for text by: ")
9 ~; Z1 N; C; z# _' e( ^ - (princ "\nNew angle for text: ")
$ N1 ~ ?% K) u7 ] - ): T0 B. u" i: Z6 N" h* ?
- (setq ang (getreal))
, C( K/ z! ]8 n3 e3 O( d - (setq ang (* (/ ang 180) pi))
9 b8 l$ q6 G& f- E4 Y7 k# g- @ - (setq ss (ssget))! @/ |. U: Q! t0 h, U7 m: [' ?. j
- (setq ca 0 ssl (sslength ss))
* n. l) L% l3 {' T - (while (< ca ssl)% p' D, o' J! l" w& X
- (if (= "TEXT" (cdr (assoc 0 (setq e (entget (ssname ss ca))))))
e6 f( H2 Z8 Q7 @) L. y/ g - (progn
! e7 {( C" b, l - (if (= ans "Increase")2 B' [& N! p2 ~" ~
- (setq na (cons 50 (+ (cdr (assoc 50 e)) ang)))- ^( S9 |, P. f
- (setq na (cons 50 ang))% @! u, A4 M( V4 X* A$ E/ B; U* @
- )
1 H0 p7 q8 m$ D: t5 }: J - (setq e (subst na (assoc 50 e) e))' z) J, x+ {+ b- z
- (entmod e)/ y, R# l# }, b4 r) ~! k
- (setq ca (1+ ca))
( x$ a5 q% g7 ^0 T8 c% G - )
7 B9 W K# F6 \+ r1 E - )
& k; s# A' |. ?# a - )* |8 f; a* z$ V8 V2 X# ?
- (terpri)1 A4 D- n( A k5 l9 `
- )
8 q1 Y+ D& {4 I" l- v! P5 g - 0 ~0 ]* W T* n' i& X
5 X# k0 r% h* h+ y) V- (defun c:WL ()
+ H' X: o- R5 b0 v i# y" d6 m3 d - (setvar "cmdecho" 0); R7 t# K2 S& j
- (setq a 1)
- K9 L" n; B" k& J - (prompt "\nSelect Polylines to change: ")
* W, j4 j" L( O - (while (/= a nil)
$ u" y M& p" W0 j0 c4 ~3 B - (progn
2 L. B6 i$ a7 Y$ l - (setq a (entsel))# k2 L2 N7 x/ U: l
- (if (/= a nil)" e' H: K* Z7 I3 n
- (progn
9 I8 @# m/ o' ?6 R - (setq b (entget (car a)))- {- b; f1 \) Y9 G n2 R/ A
- (setq c (cdr (assoc 40 b)))
" i+ b) g; D4 m4 O/ X - (princ c)
: Z$ F; w, R3 R- S! u - (command "pedit"a"w""lw""")
2 ~" N- g) a8 M - ))))
0 j4 h. O, B; j ]" t - (princ)
+ S0 e( z8 q0 x& j& ~ - )
6 E' I4 e; n% d5 | [
6 `5 [4 n3 ?/ e: Z" b- ;;; ================================ TEXT FIT ============================' M% r( y( B) `) x
- 5 [, X2 q3 j5 T% S
- (Defun c:FT ( )4 _2 X' r3 c: S7 F! v
- (defun setsnapang (arg /) (setvar "snapang" (angtof (angtos (cdr (assoc 50 arg)) 0 8) 0 )) )4 m. O6 s5 _8 r l9 s
- (Defun LL-xyz (arg) (CAR (TextBox arg)) )& Y% M' x% n' G/ \0 p* M2 ~2 \6 ?
- (Defun UR-x (arg) (CAADR (TextBox arg)) )
( Z( ?* N) a- M+ U! x7 m - (Defun LL-y (arg) (CADAR (TextBox arg)) )- J* u# v% ?4 M
- (Defun LR-xy (arg) (List (UR-x arg) (LL-y arg)) )- E, o6 u' a9 ]( R
- (Setq ename (CAR (EntSel "\nSelect Text to stretch/shrink:" ) ), J7 ] v# G$ _5 ^) n7 S/ t9 X
- Textent (If ename (EntGet ename)) ) 7 P. {! [3 B& e4 K% h- \
- (If (= (CDR (Assoc 0 textent)) "TEXT")' h: q9 d/ D$ G! n
- (Progn (initget 0 "Start")
' [' F% L7 {. ?* I - (Setq NewEnd (Distance (LR-xy Textent) (LL-xyz Textent) ) )
1 G" d! V( y" f- w% p; u" E4 n- x3 Z - (setsnapang Textent) ;set snap along text entity: z; `# {+ p3 O7 d
- (setvar "ORTHOMODE" 1) ;drag along the text
6 M2 r w0 i' S - (setq 6 f5 }0 r: o4 n8 l% u+ e" x _( G* V# w+ \+ ?
- TMP (getpoint (cdr (assoc 10 Textent)) "\nStarting Point/<Pick new ending point>: ") )0 ]) H; @' J9 u9 h
- (setvar "snapang" 0)7 x6 f+ ^3 k: M3 d: r
- (cond/ n- e7 `5 @0 A# N" v" R0 l
- ((= (type TMP) 'STR) ;;new starting point to be selected
; V! M6 e% Q; h2 Y2 |6 b' M - (setq Start (getpoint "\nPick new starting point: "))
$ u. Y* O. l: l) ]4 j% S - (if Start (progn
! y* I& G% F8 K - (command "_UCS" "_E" (cdr (assoc -1 textent)))
3 @ g6 a% x9 O* w6 ?. O' G - (setvar "ORTHOMODE" 1)& D' X0 H( f7 ]1 l
- (setq NewPt9 d: G( p& e1 R3 j- ]( S
- (if Start
; C' g. w }' @ - (getpoint (trans Start 0 1) " ending point: ") nil ) )6 b/ q0 }3 U) Q) Z1 h# v
- (if NewPt (setq NewPt (trans NewPt 1 0)))" e; z% e/ u' P& f/ Y
- (setvar "ORTHOMODE" 0); }7 J) w7 x) _ j' z
- (command "_UCS" "_W") ) ) )9 a/ {4 _3 [- c! u; g& a3 M
- ((not (null TMP)) ;;new ending point selected8 S6 E) S' ^! [ b6 b$ A# e: M) {
- (setq Start (cdr (assoc 10 Textent)) NewPt TMP) )3 A" q% n. w Z! z! @
- (t (setq Start nil NewPt nil) ) )8 e5 {- X7 Z/ D% T, }! @* L
- (if (and Start NewPt) (progn
) j+ Y) u. E8 a' X+ r w$ i - (setq Val (Assoc 41 Textent) ;;current width factor
4 ?( Q% T3 z8 g0 Q7 w8 Y. c8 S - Val (if Val (cdr Val) 1.0) LTC_%
8 j( R* N9 b. L0 }. M6 l - (* (/ (Distance Start NewPt) NewEnd ) Val )% J8 U i( I6 t! ]" Q
- textent (Subst (cons 41 LTC_%)
* h$ e2 N d7 _; O m* J9 G - (assoc 41 textent) textent)0 Z0 t% ~# y$ o5 x
- textent (subst (cons 10 Start) (assoc 10 textent) textent); H( A; Z: i1 C
- textent (subst (cons 11 NewPt) (assoc 11 textent) textent) )
1 T, ]+ l% [! C2 a2 E - (EntMod textent) (EntUpd (cdr (assoc -1 textent))))))) (Princ))
8 @: J/ g$ E( w1 _" o - : H1 ?! {& w8 e( {. C4 V
- ;=====================================================================! e2 O5 Z+ b5 `# X
- ;=========================COPY + ROTATE ==============================
) D2 }: `0 k( }( Q# _2 ~7 W* i - ;=====================================================================0 @2 w6 W) Z. i4 v; |( k
- 3 F4 Z0 I1 b$ P$ D- ], r/ ]7 Q
- (defun c:CR(/ olderr cm loop ss1 ss2 bp mult lent ss2 lp1 lp2)
* a/ y+ Z1 s7 Q- H - (setq olderr *error*! z6 P$ [, e2 t
- *error* croerr)
/ L0 `' b W" d% q8 Y3 g - (setq cm (getvar "cmdecho"))
p- Y% |$ K$ L - (setvar "cmdecho" 0)1 b+ n, |, l4 o/ h' m) J
- (setq loop t)
8 S) m, `- u5 ? - (while (not (setq ss1 (ssget))))
+ o0 m# }) s( h4 Z& W: I1 n5 B8 b - (initget 1 "Multiple")
* [: p5 p- e7 h; n# ^- k - (setq bp (getpoint "\nBase point or displacement>/Multiple: "))5 T, |5 i3 V1 r. v% H3 G, l
- (if (= bp "Multiple")5 C* o" D" X, w, v# ^# P2 j4 N( K0 T5 V- E
- (progn! v9 {0 B1 {1 @3 C3 F- g
- (setq bp (getpoint "\nBase point: "))* e) b3 @# I1 o5 @
- (setq mult t). r0 w) V* {- C1 I$ c% F
- ) n# P5 J: p# m
- )* i3 @3 s4 s3 d- R/ ~5 e
- (while loop
0 d7 y5 ~' z8 V, M' ? - (setq loop mult)
' c# z4 h$ A- ]5 L- |" g$ o! \1 z - (setq lent (lastent))
( A2 d: `6 S3 r/ P - (command ".copy" ss1 "" bp bp)
, H: ?) y1 e, Q: l4 y2 H& ~$ Q - (setq ss2 (lss lent))
$ }% q6 ^3 g& W' ~ - (setq lp1 (getvar "lastpoint"))
2 A9 V m2 t4 n8 V5 C( h - (prompt "\nSecond point of displacement: ")8 j( `1 _" X* S2 K- S
- (command ".move" ss2 "" bp pause)+ ^% f% N1 X( r N: S8 m
- (setq lp2 (getvar "lastpoint"))
* f' x7 r/ @7 I& B% w$ T - (redss ss1)- X d# |) K& |+ Z1 Z& M+ O# o4 ?
- (if (and (not mult)- Q2 d& m1 j. ?/ D4 T- G
- (= (distance lp1 lp2) 0)
8 @) f" ^/ n3 D: }/ h. A/ m - )) m. `' m, n1 A" V0 Y( t
- (setq lp2 (getpoint "\nRotation Point: ")), L- g5 }; D% h
- )
; H2 J1 g0 C) \4 M; y' {3 o - (if mult' {, j0 ?8 N, c9 {& @
- (prompt "\nRotation angle ")& Y2 j1 H! A$ C
- (prompt "\nReference/<Rotation angle>: ")5 H2 r+ F: g- I, t, H' Z8 S
- )7 h' T; j* d: w! s1 n. f, c$ G( i
- (command ".rotate" ss2 "" lp2 pause); C' Z2 n- G F+ [
- )& N8 D% W3 r! w# y
- (setvar "CMDECHO" cm)+ y$ f1 g2 z( k0 d
- (setq *error* olderr)# G5 a1 P( o. R. D4 O
- (princ)
9 X; z3 a, C6 T( i& w7 Z: u - ) E6 F* y9 h% ~* m. m# W$ j
- (princ)+ i6 L% l7 h! ]3 R0 M
- (defun croerr (s)
2 L4 \' |" K a8 P$ t" n. J/ ?; M3 k - (if (/= s "Function cancelled") / i# W/ A4 u8 H) f
- (princ (strcat "\nError: " s))
7 \" B7 @) S$ p1 U- ^ - )
: u8 \ }5 Z# a! K8 n - (setq S nil)2 }* @$ S g6 s9 b. i5 u# W
- (setvar "CMDECHO" cm)
' E4 L3 L1 G& W' w0 w& K - (setq *error* olderr)
# `7 l% i0 {& i4 o2 t) |4 A; P9 K1 I/ c8 W - (princ)
, e ], O% y5 T - )# d! N8 y8 l2 I3 H3 Y. g
- (defun lastent (/ a b)
$ d: u6 P* g7 M% o* o - (if (setq a (entlast))9 F. C; m9 q" E/ x4 B7 B ~$ f
- (while (setq b (entnext a))
6 y7 q* q* J! T8 x - (setq a b); `. U) Q) R* Z& @
- )
8 m5 R2 e2 x, q" [, N - )
! g& J% {' P0 k6 V1 q+ U: r* ` - a
# [1 W5 _" _5 @0 Q) t4 ^- \ - )
) I! [$ p; T- Q& u9 F - (defun redss (ss / en i)
, u5 Y5 ^( d6 l ?* t* w' U - (setq i 0)
7 N" X$ O+ p3 ^, V2 u - (while (setq en (ssname ss i))
$ F; E+ M7 ~% L. S5 B# U - (redraw en 1)
( y( ~- n! ]2 ]0 j# x5 w: B - (setq i (1+ i))
3 c2 @& r# B$ W3 L1 j - )4 [' S' c s( ]/ y- d6 N* G
- )! g7 e& ^# b- l0 k+ R6 T, }
- (defun lss (en / sels ed)0 u' ^; }/ ~* S8 p' r! C
- (setq sels (ssadd))
2 W" g3 r0 F) l4 E1 T7 s - (while (/= en nil)
; a8 M: ?; ]; j. ^6 L3 {. J8 ~ - (if (setq en (entnext en)) (setq ed (entget en)))
# I5 o# I4 I7 D1 m& E: ^ - (if (/= en nil) (setq sels (ssadd en sels)))
4 G# @. F# T7 F. {- w& ` - (if (or (= (cdr (assoc 0 ed)) "Polyline")
$ f2 n) G6 A+ {1 W4 \ - (= (cdr (assoc 0 ed)) "Insert")
! u( h+ k5 u3 a) ~ - )
& p% D8 J- K0 C$ Y - (while (/= (cdr (assoc 0 (entget (setq en (entnext en))))) "Seqend"))
' N. P- F+ R$ V1 ?2 X - )
$ n9 ^2 X/ U5 u" Y) E - )
" q/ S- e1 \) R$ c0 a - sels
& q: v3 G8 d7 a: v2 k1 `, J - )
! ?2 Y. u( c3 D9 M) _6 _. `8 N - 8 G2 c/ f( M5 r
- ;;;; ================== CAC FUNCTIONS DUNG TRONG ACAD.LSP ==================
+ q0 o6 [" \4 D$ V+ [! [0 U - ; G- v8 t: n2 b( V) |- o+ p) W
- (defun c:00 ()(princ "\nChon doi tuong net Defpoints")(ssget)(command "change" "p" "" "p" "la" "Defpoints" "")); u6 M" c. s, r/ N$ S* g
- (defun c:0 ()(princ "\nChon doi tuong net 0")(ssget)(command "change" "p" "" "p" "la" "0" ""))
: t$ E, t+ E6 N3 ~3 a - (defun c:1 ()(princ "\nChon doi tuong net COT")(ssget)(command "change" "p" "" "p" "la" "COT" ""))
' s" e6 j. Z: N# A) G5 [ - (defun c:11 ()(princ "\nChon doi tuong net DIM")(ssget)(command "change" "p" "" "p" "la" "DIM" ""))
3 H. y$ _) f# h b7 c1 k - (defun c:22 ()(princ "\nChon doi tuong net MANH")(ssget)(command "change" "p" "" "p" "la" "MANH" ""))
' n; s: G4 y: `, p4 U, M! S- Q - (defun c:33 ()(princ "\nChon doi tuong net NETMANH")(ssget)(command "change" "p" "" "p" "la" "NETMANH" ""))
/ _- L( ^/ ^' U2 ?0 Z' d - (defun c:2 ()(princ "\nChon doi tuong net NETDUT")(ssget)(command "change" "p" "" "p" "la" "NETDUT" ""))
; L8 ]& `# _( e4 B, J8 b+ V - (defun c:3 ()(princ "\nChon doi tuong net NOITHAT")(ssget)(command "change" "p" "" "p" "la" "NOITHAT" ""))4 m1 q# K2 f0 y) T' d
- (defun c:4 ()(princ "\nChon doi tuong net TUONG")(ssget)(command "change" "p" "" "p" "la" "TUONG" ""))
! s/ {, X1 e X' ^ - (defun c:44 ()(princ "\nChon doi tuong net KHUNGTEN")(ssget)(command "change" "p" "" "p" "la" "KHUNGTEN" ""))6 x: K8 m) k6 k; N: a# r+ |
- (defun c:5 ()(princ "\nChon doi tuong net TIMTUONG")(ssget)(command "change" "p" "" "p" "la" "TIMTUONG" ""))
. p1 x" R* J. m6 I5 K7 Z. | - (defun c:6 ()(princ "\nChon doi tuong net CUA")(ssget)(command "change" "p" "" "p" "la" "CUA" ""))
( l& v. ]5 K# t- a# I - (defun c:7 ()(princ "\nChon doi tuong net THAY")(ssget)(command "change" "p" "" "p" "la" "THAY" "")): A9 Y* `. M$ ~* y: ~/ P( p
- (defun c:77 ()(princ "\nChon doi tuong net NETTHAY")(ssget)(command "change" "p" "" "p" "la" "NETTHAY" ""))
, M; M2 C' z) w - (defun c:8 ()(princ "\nChon doi tuong net HATCH")(ssget)(command "change" "p" "" "p" "la" "HATCH" ""))7 j5 i# k. S" }& Z) H9 _7 W
- (defun c:9 ()(princ "\nChon doi tuong net TEXT")(ssget)(command "change" "p" "" "p" "la" "TEXT" ""))
+ }) E$ ~* S7 N& `5 t( _: v: r - (defun c:99 ()(princ "\nChon doi tuong net CUAMATDUNG")(ssget)(command "change" "p" "" "p" "la" "CUAMATDUNG" "p" "C" "bylayer" ""))
+ t N9 e# U4 ~& x; B# ? P7 w - (defun c:td ()(princ "\nChon doi tuong net THEPDOC")(ssget)(command "change" "p" "" "p" "la" "THEPDOC" ""))3 M7 Y+ P) X5 f
- (defun c:ddt ()(princ "\nChon doi tuong net THEPDAI")(ssget)(command "change" "p" "" "p" "la" "THEPDAI" ""))
' |# p* C3 f2 g# y2 q* o- X5 | - $ ~! G8 u/ e$ O! P! A" }8 h3 Z: i$ L
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============: v: y$ b: K% F7 ~$ ?
# R* ?/ Q; X. w7 }3 v, l- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =============" A$ a+ W4 c, Z4 q5 ?
- / X8 h! c0 c# R/ B
- (alert "Using the NetXuatAnh-[ 5940.00 x 4200.00 <pixels> ] command!")
& ~$ j6 v7 }: L2 l1 \7 a - (princ "\nEnter (DEFUN C:netxuatanh () to get to real LAYER command.\n") (command "NETXUATANH")
4 q* X: r$ @) @3 K3 K- J
2 g8 R- I. \! R$ D, z& z- ;=============== DAT LAYER NET de xuat anh JPG [W x H] [5940.00 x 4200.00] ===DRAW===
1 c: `! ~! ?9 G" [* u2 h - 2 I/ V, d7 x6 T3 i# D& p3 [
- ;(DEFUN C:netxuatanh (). q- e6 f' k) a3 F" h9 J, ~9 c
- (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.6" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""5 C r# Z, Q$ d. y7 h
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1.58" ""5 U6 _) {( W+ F6 G: s% S
- "M" "MANH" "C" "9" "" "Lw" "0.5" ""
$ M- j& }% ~- h" V7 G7 f% Z - "M" "TEXT" "C" "7" "" "Lw" "0.5" ""
$ Y/ @1 I; M9 O" {/ n - "M" "DIM" "C" "1" "" "Lw" "0.6" ""
7 h# \5 e \4 C7 z/ t6 a - "M" "THAY" "C" "7" "" "Lw" "0.7" ""
$ S4 V, l! O+ K# \ - "M" "NOITHAT" "C" "3" "" "Lw" "0.5" ""% |. G$ x0 H9 d
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""3 X2 @: ^* R- a$ ^5 N
- "M" "COT" "C" "2" "" "Lw" "2" "". Z* X! [# g. z* A/ W" q: u# P4 b
- "M" "Defpoints" "C" "7" ""
7 m: c1 t, V" z+ u% a - "M" "0" "C" "3" "" "Lw" "0.5" ""5 {, J6 }. {: u# l7 Y
- ; "M" "1" "C" "1" "" "Lw" "0.5" ""
2 L/ A$ h) H: e3 J9 D F - ; "M" "2" "C" "31" "" "Lw" "0.5" ""
- h, t2 ^; D/ @$ d* r) T% P- Y$ n, j - ; "M" "3" "C" "8" "" "Lw" "0.35" ""
" R( L0 f( B: a+ Z2 q - ; "M" "4" "C" "4" "" "Lw" "0.8" ""
( G* k# S4 _2 j1 F m - ; "M" "6" "C" "6" "" "Lw" "0.35" ""
& C) Z+ |+ ^8 M. S8 B h8 n ^ - ; "M" "7" "C" "7" "" "Lw" "0.4" "") P( O0 i5 [0 C4 t
- ; "M" "8" "C" "8" "" "Lw" "0.35" ""$ ~8 K- ` ^! A+ F
- "M" "DAY-DIEN" "C" "3" "" "Lw" "0.5" ""
/ G+ A& A; Y" b# ` - "M" "DUONGBAO" "C" "7" "" "Lw" "1" ""
* `% B7 J8 S& i! f- d - "M" "KE" "C" "8" "" "Lw" "0.3" ""$ B& {; s- E6 i$ ]4 J* F1 z
- "M" "KT" "C" "9" "" "Lw" "0.35" """ x6 k B1 Z) W! x0 B# a
- "M" "NETTHAY" "C" "255" "" "Lw" "0.7" ""
* o7 [8 u# {! i8 S' z, z - "M" "NETMANH" "C" "43" "" "Lw" "0.5" ""3 s( b& n" {& X/ t6 L. I3 k) y
- "M" "TBD" "C" "2" "" "Lw" "0.8" ""
$ s+ D! T3 M2 F$ o0 O - "M" "TEXTTXT" "C" "7" "" "Lw" "0.4" ""' T3 o A' b* U' p
- "M" "TEXTVN" "C" "132" "" "Lw" "0.4" ""6 G9 x5 K# U# T% C( h
- "M" "THEPDAI" "C" "3" "" "Lw" "0.7" ""$ m& R9 ~+ R5 u+ G
- "M" "THEPDOC" "C" "2" "" "Lw" "1.58" ""
$ {% c* Q. L! ~- K6 T( ` - "M" "CUA" "C" "6" "" "Lw" "0.5" ""
3 s6 `1 k- c" ^ F) z - "M" "CUAMATDUNG" "C" "6" "" "Lw" "0.5" ""5 I/ B$ B) \7 ?! R8 I
- 3 c% F) |9 _0 O- V8 Y( p
- ;=============== DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] ===NUOC===5 E M# f& ?* B! c- s) N( n; ^
- 4 d: o6 \% X [ ]
- "M" "10-VAN_KHOA" "C" "10" "" "Lw" "0.5" ""
) p4 W& z! ]/ u2 A: q. g - "M" "4-WateR_IN" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE1" ""
% e% i: b/ x$ P$ h$ T+ P( e - "M" "4-WateR_OUT" "C" "4" "" "Lw" "0.6" "" "LT" "FENCELINE2" ""
% B8 b$ q% d& ]# V; H, Y' z - ; "M" "250" "C" "250" "" "Lw" "0.35" ""1 N5 Y8 I( V3 G _. H9 x9 M
- "M" "KHUNGTEN" "C" "4" "" "Lw" "1" ""
3 |( p2 Z+ A5 [- o# `) S9 ? - "M" "TIMTUONG" "C" "5" "" "Lw" "0.5" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" "" )' J1 C& y3 k, i
- 7 }9 [: d+ P- M' C# K+ c: a
- ;=============== DAT LAYER TEXT de xuat anh JPG [DIM] [TEXT] [GHI CHU]======& ]$ ^8 l- ^; y
- ;===================================30|04|2024==============================
" _$ u+ i4 O0 I# l5 ?( | - / I' O( t- S8 C
- (Command "-style" "Vni-VietNam" "vn_vni,vns.shx" "0" "1" "0" "n" "n" "n" )
3 m [$ _' O9 b9 [/ O# o - (Command "-style" "Vni-ROMANS-TEXT" "vni-romans,vns.shx" "200" "1" "0" "n" "n" "n" )
! a5 N' s3 ]( j: b4 x - (Command "-style" "COTES" "verdana" "" "1" "0" "n" "n" )
& d# w* d {4 u - (Command "-style" "TRUC" "impact" "0" "1" "0" "n" "n" "n" )$ t6 i* k7 ^" g) K
- (Command "-style" "VNHELVLT-Hoa" "vnhelvh,vnh.shx" "500" "1""0" "n" "n" "n" )( T/ m. ~! [3 C2 z6 a
- (Command "-style" "VNHELVLT-Thuong" "vnhelv,vnh.shx" "500""1" "0" "n" "n" "n" )
0 \; u7 }' t/ X: ?9 e# g9 ?5 ? - (Command "-style" "STANDARD" "Verdana" "200" "1" "0" "n" "n" "n" )8 }0 g+ K4 J6 n; r6 [
- (Command "-style" "VERDANA" "verdana" "200" "1" "0" "n" "n" )
+ X1 k3 w. j# l' P" A* O |) Q2 O - (Command "-style" "ROMANT-DIM" "romant,vnh.shx" "0" "1" "0" "n" "n" "n" )4 A( n" f: L8 @' g* U& g& P9 R
- (Command "-style" "ROMANT-TEXT" "romant,vnh.shx" "200" "1" "0" "n" "n" "n" )(princ)
' j. `: z* e( X, [" s! ~3 o- t1 O - # Z" P# e5 x1 b7 I
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=. f. r3 y: e2 ~# P# |$ L/ L
- ;===================================17|10|2024===================================
8 S# F$ O8 U) M5 ? - ! k, n- P' B* h8 Z$ P( {* h
- (Command "DIMTXSTY" "ROMANT-DIM" )
, R* }7 |% j- \6 J - (Command "DIMBLK" "" "Closed" )( q+ q! R* U8 q/ X- N! b2 e
% p( h c/ F! Z$ Z$ c- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=# b$ O* _% F9 k g; S) j
- ;===================================17|10|2024===================================
" A( \6 u3 W) i% F1 W9 R5 R
) a) t) p& Q! ]. e4 y- ;(Command "-units" "2" "8" "1" "8" "" "N")% o+ ]+ `8 z) m& g4 _/ L3 b
- (Command "-plot" "Y" "" "publishtoweb jpg.pc3" "User 1 (5940.00 x 4200.00 Pixels)" "Landscape" "N" "Display" "Fit" "Center" "Y" "monochrome.ctb" "Y" "")(princ)
* R3 k" t4 [2 _; W, `7 F - ) r; s% r: N) l- v" I- u4 F: V1 G
- ;============= DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =DIM-STYLE=
$ T- [! n. _1 E8 ^) N - ;===================================17|10|2024===================================! {- l$ Q: u! h& B
* @4 g9 d0 ^) l; f4 g- ;======== KET THUC - DAT NET IN de xuat anh JPG [W x H] [5940.00 x 4200.00] =====) v. z2 F# @! l( p' [1 a
' f6 |& E7 }! s2 `9 C8 ]7 {+ \# E- ;======================== DAT NET IN & TI LE BAN VE =============================5 y, U' m+ t; |2 ?, g4 e% K% R: P
& P: G% C, _$ B4 u% Q# F& Q! U! B, W- ;=================LENH VE KHUNG TEN - Tieu Diet Lenh==================
! r) g( D( s" e8 l5 _ @$ a - ;=============== DAT KHO GIAY BAN VE - KIEU KHUNG TEN ================3 @( K7 V9 T, n( a6 H
- ;=============================11|07|2025==============================
% @/ k! A; t/ G - ;Ti Le Ban Ve - 1 : 100, ?$ H9 K8 Y& {0 _0 T/ ~
- (Defun c:kta4 ()
* z' O% a1 P0 o& K2 ]6 M# S - (setq mv_sc 100);Ti le ban ve
* `' S$ n' O |4 W2 o; V - (setq x4 297)
+ v% v: m3 O/ T5 }' J: { l - (setq y4 210)
2 o) O! p! ? d9 u& [ - (setq x4 (* mv_sc x4)
. Y5 N6 P- K. e. i9 v0 N: h k - y4 (* mv_sc y4) )
! X+ p* U+ j% `, S" R) E - (command 0 w+ T& c7 D) D& R z8 C( l
- "LIMITS" "0,0" (list x4 y4)7 @* h7 I# h: D% v4 p, i+ {
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"8 |( R. j6 ]8 S* Z# U' @' y$ B/ y+ g
- ;Khung CHU NHAT Chinh
& G4 C _; k1 ]0 Z - "RECTANG" "500,500" "@28700,20000"
" o. ^8 Z% k8 V - "RECTANG" "700,700" "@28300,19600"0 j4 `, x3 P$ R" J# U4 W, C
- ;Khung Ten Chung) b1 F* v$ W7 v+ f; H# _
- "RECTANG" "700,700" "@8000,1250"$ T/ H1 M) J: ^9 C" L
- "RECTANG" "700,700" "@17300,2500"; i/ e b- r; ~
- ;Ten Ban Ve
, v! `/ N9 {/ Z0 L; m" w! F4 k - "RECTANG" "18000,700" "@11000,1250"
' m1 F* _1 r1 m- m! V# p' l - "RECTANG" "18000,700" "@11000,2500"
; H, p3 C8 L3 g4 V' e# ^ M - ;Khung Ti Le + Ngay Thang Nam
" h: f5 ^) E1 h& A - "RECTANG" "22500,700" "@2000,2500"
4 P, M9 |* v* s, R! R - ;Khung CHU TRI) j! \# g$ a1 z* H
- "RECTANG" "8700,700" "@3800,2500"
# _7 e. w3 E. {3 U/ G5 \ - "ZOOM" "_a" ))! l" p6 R) C# C, _8 I
- ;=====================================================================
. ]$ {" P8 |0 ?, \ - ;Ti Le Ban Ve - 1 : 100
+ ^9 C0 Z+ |8 ~3 c - (Defun c:kt4a ()
! u% ]7 F' [2 z6 y+ N - (setq mv_sc 100);Ti le ban ve
- r# i# q6 G+ V6 l - (setq x4 297)0 b1 p% I( c2 E( u+ w
- (setq y4 210)- @% w% I$ J8 J* A2 D$ M/ l
- (setq x4 (* mv_sc x4)
0 W5 s5 v7 i0 X - y4 (* mv_sc y4) )
! T$ N. G9 N6 V; S E% s9 T - (command
" X/ e# v3 {0 P; h3 e& O. { - "LIMITS" "0,0" (list x4 y4)2 o) F, F. r) Q
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"" x8 E' j+ J$ K+ O- M& Y* [- @
- ;Khung CHU NHAT Chinh
, a" L' l) f3 o( W* W, q - "RECTANG" "2000,500" "@27200,20000"
! V) R0 |% J2 o. R6 |. ?9 D9 f - "RECTANG" "2200,700" "@26800,19600"
; q, Z, X8 l3 E3 B% @- c) S - ;Khung Ten Chung
; p3 R6 j. Q8 P6 C) @% |/ J - "RECTANG" "2200,700" "@6500,1250"+ k. V2 q; Y% x" @! E0 _
- "RECTANG" "2200,700" "@15800,2500"# c6 q( I. `# U8 E2 g6 S- C' x
- ;Ten Ban Ve) A0 E7 C+ V' g5 d4 @' e7 y
- "RECTANG" "18000,700" "@11000,1250"' ^9 a8 ?! I7 j* k& w& P d" ^4 q
- "RECTANG" "18000,700" "@11000,2500"
; V# I& }+ a' Q6 C* E - ;Khung Ti Le + Ngay Thang Nam
8 m6 v5 I5 y5 r% R0 y8 X - "RECTANG" "22500,700" "@2000,2500"
" q: @& o7 K* F4 J/ B - ;Khung CHU TRI9 Y" j1 z( h8 ?3 K; j
- "RECTANG" "8700,700" "@3800,2500"
7 F$ k r+ Z$ |6 U0 v5 j0 E0 ]3 R3 M - "ZOOM" "_a" ))
2 ?4 U' G5 q+ o! a' J! i3 C
& d# S C. J9 a- ;;; ============================GHI CHU Khung Ten========================
( S# s" @; }( h4 {/ I% _- C/ u - ;;; ======== Phai Vao STYLE Tao LAYER Ten TEXT + Phai Dat Height ========
$ Z8 A0 v- \! g: e - ;;; =======================Thuong Dung Font Romant.vnh===================7 Q! f. a2 \6 [! V2 H4 ~9 ?
- / M: v. y$ k( n9 X/ \
- (defun c:GhiChu (/ pta ptb ptc ptd X Y X1 Y1 rmsz pl1)
, M, O9 k+ ^7 B! V - (setq oer *error* *error* err2)
/ ^+ h6 ^1 X/ |: _# n - (PROMPT "\nChuTri. ThietKe. KiemTra. TiLe. Ngay. HangMuc. QuyMo. KieuNha. CongTrinh. KyHieu. TenBanVe. Kts. TranNgocThang. ")
/ u* y/ a6 ~4 Q - (SETQ Cpt(GETSTRING "\n(CT). (TK). (KT). (TL). (Ng). (HM). (QM). (KN). (CTr). (KH). (TBV). (Kts). (TnT). "))! _' @! b1 v5 B
- (IF(OR(= Cpt "QM")(= cpt "qm"))(SETQ CPT ' "Hå S¬ ThiÕt KÕ Nhµ D©n Dông quy M« :"))
/ U; J9 a7 j- m4 r7 P8 G$ k - (IF(OR(= cpt "KN")(= cpt "kn"))(SETQ CPT ' "2 TÇng 1 Tum Thang"))$ M0 v% |/ \; g B; v# p, Z
- (IF(OR(= cpt "CT")(= cpt "ct"))(SETQ CPT ' "Chñ Tr× :"))
" H8 l, T# h1 e" K+ x - (IF(OR(= cpt "HM")(= cpt "hm"))(SETQ CPT ' "H¹ng Môc :"))
+ }; V: i( E2 O/ R' n; V - (IF(OR(= cpt "CTr")(= cpt "ctr"))(SETQ CPT ' "Nhµ ë Gia §×nh - Nhµ LiÒn KÒ"))! ^" ^) Y0 e1 O
- (IF(OR(= cpt "TK")(= cpt "tk"))(SETQ CPT ' "ThiÕt KÕ :"))
" @' H. f* B2 z1 Q - (IF(OR(= cpt "KT")(= cpt "kt"))(SETQ CPT ' "KiÓm Tra :"))
o+ }4 ^0 L; \9 V: d - (IF(OR(= cpt "TL")(= cpt "tl"))(SETQ CPT ' "TØ LÖ :"))5 |0 u$ q% _% s% T, ^& h7 G3 d8 u+ g
- (IF(OR(= cpt "KH")(= cpt "kh"))(SETQ CPT ' "Ký HiÖu :")): O! [0 r! u6 R" Z4 h& `
- (IF(OR(= cpt "TBV")(= cpt "tbv"))(SETQ CPT ' "Tªn B¶n VÏ :")) s$ q q5 ^1 H" I: o0 l
- (IF(OR(= cpt "Ng")(= cpt "ng"))(SETQ CPT ' "Ngµy :"))0 V& i" c* r$ S g
- (IF(OR(= cpt "Kts")(= cpt "kts"))(SETQ CPT ' "Kts. TrÇn Ngäc Th¾ng"))( j, v: ]3 v; G2 e& x& t' X0 j
- (IF(OR(= cpt "TnT")(= cpt "tnt"))(SETQ CPT ' "TrÇn Ngäc Th¾ng"))
% S& N7 C/ p9 u. I( g# I- _ - (setq pta (getpoint
# r N- ^) |5 h3 |4 J: ] - "\nPick first corner. : "))
1 c) W9 ~8 u, Z4 t3 o - (setq ptb (getcorner pta4 }- N4 b; w& q/ A$ @) K( E/ X
- "\nPick second corner. : "))
' J' o- y- P' ~8 }, g$ a - (setq ptc (list (car ptb)(cadr pta)))
7 p2 G( H: o7 f: y) x- V3 P- g d- Y - (setq ptd (list (car pta)(cadr ptb))) I3 S, t7 [ W/ H- t; o
- (setq ang (angle pta ptb))
; o. m7 _4 f$ o/ G7 u5 D) w - (setq d1 (/(distance pta ptb) 2))
/ O0 x+ \$ o% X/ I - (setq cp (polar pta (- ang (dtr 0)) d1))
) t: K0 K$ ~$ n/ z - (setq X (distance pta ptc))+ e+ V) d' Q! f9 t1 c
- (setq Y (distance pta ptd))5 q* W2 s: B3 L; T( Y# z
- (setq X1 (rtos x 2 1))
J( q# ^: A- p7 [# g/ V - (setq Y1 (rtos y 2 1))9 ?. W6 g! ^! D/ H! q* p
- (setq rmsz (strcat "(" X1 " x " Y1 ")")): f+ \9 {4 o. V- P# J& m1 a/ O: H
- (command "TEXT" "c" cp "0" CPT "text" "" rmsz))
. d; F, t& f% O# i - (defun dtr (angg)
) e# B8 F5 F( {# e. A4 P$ T - (* pi (/ angg 180.0)))% C2 H+ ?7 g: B8 T4 y" K4 g& |4 U
- % \) g8 F E% z! d/ G# ^
- ;=====================================================================9 d+ v; O" \* U0 V: r
- ;==========================DAT KHO GIAY BAN VE - KIEU 1========================
|: K/ C/ Q- W ^9 O - ;=====================================================================
/ I! f% e: y4 K- ?" M# O# m# u6 } - & J- ]& ~8 D( Y- g) @
- (Defun c:a6 ()
3 |+ O. v. J) P' l) n. a, V+ ^0 ] - (setq mv_sc 100);Ti le ban ve
+ |% X$ @/ B% \ G' ? - (setq x4 74.25)$ K' v( c; c' `* R
- (setq y4 52.5)* h& f& V5 }$ }+ N( Z: J8 K
- (setq x4 (* mv_sc x4) / v* Y3 S# |7 j6 n& w4 s
- y4 (* mv_sc y4) )' k5 c% `( M# A
- (command 1 F5 e( B' {8 C/ q7 J! i4 Y6 V
- "LIMITS" "0,0" (list x4 y4). I% Q1 K6 ^9 K% T/ q% @3 j: t8 l2 X
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C": _# D. w; q# i) X1 l# M$ o: q
- "RECTANG" "125,125" "@7175,5000"+ k$ |' q7 |: J2 {/ }
- "RECTANG" "175,175" "@7075,4900"5 Q% t `; j( ]5 g9 M5 J* [
- "ZOOM" "_a" ))
6 e. @5 ~7 h8 }2 Y+ j - ;=====================================================================
, c( {' R8 y: _& `% a$ e m* E1 ` - (Defun c:a5 ()
: Y! h H) X3 w' }, g8 A - (setq mv_sc 100);Ti le ban ve4 Z+ _& T' |! Z2 @
- (setq x4 147.5)
+ K5 ]/ G8 N8 k R& C- ] - (setq y4 104)
; V& {6 A7 B2 m; o8 o - (setq x4 (* mv_sc x4)
( X H+ V& n7 q - y4 (* mv_sc y4) )2 f. H( T5 B+ x" m& I
- (command : @* F, }. N$ ?: ?7 Z1 l
- "LIMITS" "0,0" (list x4 y4)
% A' X \ ?/ T J( m; i - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"; b7 G+ s0 C# l' `$ O6 b
- "RECTANG" "250,250" "@14350,10000"
( x% D& P: A) z$ i4 w+ f3 l - "RECTANG" "350,350" "@14150,9800"
. a* z7 g4 |3 y/ L0 \0 U - "ZOOM" "_a" ))
) x Y) W I: M v - ;=====================================================================
/ ], m* X9 ^# C7 T) j2 k - (Defun c:a4 (), E/ j9 K) w) X% l" o# t
- (setq mv_sc 100);Ti le ban ve
4 [0 h$ n' S D - (setq x4 297)+ o# o: [" P: o2 H" E3 F9 Z5 d
- (setq y4 210)4 p1 h8 t) V7 u, G0 H7 u, Y
- (setq x4 (* mv_sc x4) 2 o5 t' X+ U3 M
- y4 (* mv_sc y4) )6 K; I7 P( y1 D, j5 H9 E( i
- (command % B. V* R3 s( ?
- "LIMITS" "0,0" (list x4 y4)1 J, l3 F( `, Y4 X. q- i9 f# m0 m' U( ]
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
; Y5 D' r7 T" @ - "RECTANG" "500,500" "@28700,20000"
0 `7 a& ^7 U9 R( _) e - "RECTANG" "700,700" "@28300,19600"
) K- v7 x# |" P - "ZOOM" "_a" ))
" F5 x" y/ C3 s* Q - ;=====================================================================/ {- K( {% U" n1 ~3 s4 _
- (Defun c:a3 ()
0 ~0 M+ S7 I, [2 t7 n& Y - (setq mv_sc 100)1 w, b: k4 L* I+ `* {$ P
- (setq x3 420)' W; m6 L4 w+ L# i
- (setq y3 297)1 _4 r$ `9 S# x* }
- (setq x3 (* mv_sc x3) " Q4 r$ E6 [: F6 `7 M
- y3 (* mv_sc y3) )
) {* o3 k! B6 ?( i: I& G. X - (command , ]. g* G! B$ Y3 X# h4 t
- "LIMITS" "0,0" (list x3 y3)
3 I! A1 d7 Z \" s# A - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"3 {0 i# X% N& S: n x3 ~6 L
- "RECTANG" "707.14285714,707.14285714" "@40590,28285.71428571"
5 X P2 f% O, m8 r/ e/ {( V - "RECTANG" "990,990" "@40024.28571429,27720"
$ g- L$ K8 b& ?" {5 L$ @5 \ - "ZOOM" "_a" ))
" b: j- I8 f2 M7 O1 g8 O - ;=====================================================================0 c: v4 h% D3 E$ y' U" }3 e$ D
- (Defun c:a2 ()4 q- R) Z1 _+ \& T: m
- (setq mv_sc 100)0 _" T- N- m8 s; L
- (setq x2 594)! I: r b( [: }+ w3 S
- (setq y2 420)
( F y2 ?$ x& j - (setq x2 (* mv_sc x2) 4 @* W# Q! t9 I: x A. h: K" Z% W
- y2 (* mv_sc y2) )
2 D' F4 k, K$ [. | - (command
7 K% ]! E. W/ V- Q0 r2 @ - "LIMITS" "0,0" (list x2 y2)
7 K8 j. J* n/ e* s$ |5 d6 O - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
* s3 I% C: h4 h6 X: j ? - "RECTANG" "1000,1000" "@57400,40000"2 H1 t# t* i$ `3 ^
- "RECTANG" "1400,1400" "@56600,39200"# S. G) _8 l0 g: }
- "ZOOM" "_a" )): \2 E2 O. Q! n3 j- k
- ;=====================================================================: T8 ^0 w: V/ f) D& z6 p
- (Defun c:a1 ()1 H8 S4 u$ f D& z7 x6 n$ m
- (setq mv_sc 100)
' i3 o k/ f7 l8 ~7 I& }7 b - (setq x1 840)
, k/ [% W( S# d4 @ - (setq y1 594)
1 f- I/ h& R0 s; }. z - (setq x1 (* mv_sc x1)
2 L. @+ S( P( | - y1 (* mv_sc y1) )7 z9 s+ Z) b6 e8 W9 B) t
- (command ( R/ v1 J2 U2 W) S( r' p
- "LIMITS" "0,0" (list x1 y1)
9 u( m0 n: I( J- l - "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"
2 s% f! y/ V1 R# d& b - "RECTANG" "1414.28571429,1414.28571429" "@81180,56571.42857143" R9 m- u" h& H6 ^( p- O* F4 R
- "RECTANG" "1980,1980" "@80048.57142857,55440" q( K- ], P5 H' G# S. |2 O! W
- "ZOOM" "_a" ))
$ H. V7 k- p' E! Y! ], T - ;=====================================================================
) \9 C1 G6 A0 k$ s3 k - (Defun c:a0 ()
5 A0 L9 I2 q& h& V - (setq mv_sc 100): u2 @( {" E0 D3 f. e" h3 F2 ?
- (setq x0 1188)
1 }/ Y9 P2 T" W* @6 h6 S, @# R/ i - (setq y0 840)
' d1 d- A5 n: F6 g$ S - (setq x0 (* mv_sc x0) " c+ O! X9 s4 Y
- y0 (* mv_sc y0) )
3 p' ?! x$ v5 \: v - (command
% p6 s+ M T" n* _+ }, ~ - "LIMITS" "0,0" (list x0 y0)+ z! d1 V7 T4 x! K
- "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"
, A+ ~; O$ P2 I+ [ - "RECTANG" "2000,2000" "@114800,80000"7 x' U K: e( B8 m( {8 i$ f+ m
- "RECTANG" "2800,2800" "@113200,78400", L+ v" ?" Q2 _! E, H# x
- "ZOOM" "_a" ))
5 V( W; P- H; {/ p( a3 c6 w - 7 W' f. U9 b9 M$ M* }
- ;=====================================================================
! K/ A; @: q: I" R - ;=========================DAT KHO GIAY BAN VE - KIEU 2=========================' y. k% h0 j: S# N
- ;=====================================================================
7 @! b: y9 s! T( E! i - 3 s- ^6 m3 x. O1 E5 j
- (Defun c:6a ()
: \( {9 s6 d$ v" I. N' e! N4 i. i3 B - (setq mv_sc 100);Ti le ban ve
, Q' G. J w0 `& ]8 g - (setq x4 74.25)0 z3 p I. ]3 P2 B: W+ q* u) ?) g
- (setq y4 52.5)
- k% F7 F, A3 m8 G& C - (setq x4 (* mv_sc x4) 5 d" d4 {; M' F- X' H" N8 D
- y4 (* mv_sc y4) )2 {, i# P2 t- r: C [
- (command , b/ y+ i& {) p4 g
- "LIMITS" "0,0" (list x4 y4)
% [+ K) t# F- [4 S - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
* g) B o/ F$ B6 T$ r - "RECTANG" "505,125" "@6800,5000" y# [$ N }$ M5 L7 R& ^, T
- "RECTANG" "555,175" "@6700,4900"
/ ?, I: m3 D4 q - "ZOOM" "_a" ))6 t9 [7 ` U; P4 T7 L( T) I4 p
- ;=====================================================================
( f4 N( p3 w# `& U Z! h" Z e( { - (Defun c:5a ()( }6 k/ q) _6 C; m6 X G
- (setq mv_sc 100);Ti le ban ve$ a0 z% i3 F2 j
- (setq x4 148.5)
4 D; y3 T* ~2 Q+ c/ _ - (setq y4 105)$ x% f& m" X7 B3 g) e$ H. x! e
- (setq x4 (* mv_sc x4)
9 ]. j' o7 |2 T* Z - y4 (* mv_sc y4) )
6 S# k6 x! ~$ N6 L7 L - (command : a, `3 j) ~( \: e
- "LIMITS" "0,0" (list x4 y4)
& W+ p- ?" q6 T: Z* T1 ]8 g; I - "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
. }& k- f# |* C, I- @% A* p# g - "RECTANG" "1000,250" "@13600,10000"
7 N M: e, w4 L; M8 t5 p N - "RECTANG" "1100,350" "@13400,9800"
. u7 y2 F s! Z$ g+ C: A - "ZOOM" "_a" ))
% L; h; g. L% } - ;=====================================================================7 l# G2 V$ a+ p0 O
- (Defun c:4a ()
6 `& \/ _8 U" b! N7 f8 l \+ @! M* i - (setq mv_sc 100);Ti le ban ve
! [9 Q5 s/ I) f: ~/ n! X2 d - (setq x4 297); K: _+ y9 R+ l
- (setq y4 210): E% e3 ~5 @6 V3 l9 h
- (setq x4 (* mv_sc x4) n# R" o5 f! o- S# w6 O. X) {9 D
- y4 (* mv_sc y4) )
" K7 R" G* f4 ^3 ?) V- Q - (command Q0 U# l' r, s! j% @! s
- "LIMITS" "0,0" (list x4 y4)+ |- a- D# F5 s" O4 r$ T4 R2 D$ E
- "PLINE" "0,0" (list 0 y4) (list x4 y4) (list x4 0) "0,0" "_C"
; v% @2 @: b' G: I! R9 z$ c - "RECTANG" "2000,500" "@27200,20000"' ^7 S4 ~# Z# E7 i0 R" H
- "RECTANG" "2200,700" "@26800,19600"5 s: ^7 G. F# O% _9 H' _
- "ZOOM" "_a" ))
' {; q, |' \0 X: L7 e - ;=====================================================================
) L. @, a" y$ v2 c2 G; Y - (Defun c:3a ()
4 z- ^/ }7 o; I9 H - (setq mv_sc 100)+ |2 f0 D% B# e& J) I1 h. E. C8 p) i5 g
- (setq x3 420.0428571429)
9 `% W7 c1 w& Y; h6 C/ ?! Y, U - (setq y3 297)
9 B% G; T$ D8 [. n1 z - (setq x3 (* mv_sc x3)
) j, m/ b1 {1 L - y3 (* mv_sc y3) )) K" C# j2 T$ j& q/ Y7 `) [
- (command
X; ^8 V( E8 a0 Q - "LIMITS" "0,0" (list x3 y3)
9 U* i. y. u" ]! O; ^ - "PLINE" "0,0" (list 0 y3) (list x3 y3) (list x3 0) "0,0" "_C"2 \& Z; N- a& f
- "RECTANG" "2828.57142857,707.14285714" "@38468.57142857,28285.71428571"* G5 m9 Q, o$ O! p, j0 W. ?# g2 s
- "RECTANG" "3111.42857142,989.99999999" "@37902.85714287,27720.00000001": C' k; R0 k& u8 P+ h F# B+ D
- "ZOOM" "_a" ))" n+ b6 f" O, s( R
- ;=====================================================================, |5 D/ H# X6 b3 w0 Q6 N
- (Defun c:2a ()9 d& ?* Y$ M7 g/ l" @) c7 Z4 V
- (setq mv_sc 100)! @% ]) x8 b9 x5 n! C9 q
- (setq x2 594)) s8 B$ X0 y9 Z0 |3 Z' p+ K
- (setq y2 420)
6 k" h/ o V$ n; o - (setq x2 (* mv_sc x2) ) a0 s9 h' _2 Z6 |
- y2 (* mv_sc y2) )
9 L9 ?3 Q) }) S/ g) q# h. o - (command $ N7 u4 @' a2 [ e" W E* E
- "LIMITS" "0,0" (list x2 y2)
) H2 }- h5 x* v8 s* R9 a - "PLINE" "0,0" (list 0 y2) (list x2 y2) (list x2 0) "0,0" "_C"
$ U! r" U6 R- C+ |: N- x - "RECTANG" "4000,1000" "@54400,40000"7 B& X u" q5 Q3 l
- "RECTANG" "4400,1400" "@53600,39200"
7 {1 m+ O. T3 _/ A; `) h - "ZOOM" "_a" ))
/ @! J0 B+ N2 `; H; Z9 B6 Z3 p - ;=====================================================================
4 f( P1 Q. c& T& k6 h# x - (Defun c:1a ()# \; W+ N7 r1 T& w' g( g; P
- (setq mv_sc 100)
( w5 Z& r! |; m! A& J% Z# w - (setq x1 840.0857142857)
. E- c" \6 B7 a3 w- P - (setq y1 594)6 I/ ]. l( K) h
- (setq x1 (* mv_sc x1)
8 y1 ]; n! \% y! r) k" K' s: _ - y1 (* mv_sc y1) )1 j) Z* j+ u" L) x. e4 M
- (command
) U& Z* d8 ]) g! g; K( K, }, d: g - "LIMITS" "0,0" (list x1 y1), z: e. R/ b9 c& N, G+ X( [
- "PLINE" "0,0" (list 0 y1) (list x1 y1) (list x1 0) "0,0" "_C"; ^8 n3 k* [/ r
- "RECTANG" "5657.14285714,1414.28571429" "@76937.14285714,56571.428571436"
# G8 }7 H$ G- L - "RECTANG" "6222.85714286,1980.00000001" "@75805.71428570,55440"' A& P+ Q( ~* q$ G
- "ZOOM" "_a" ))+ M! X( v o# f* l4 y1 P8 k9 Q4 B/ U
- ;=====================================================================5 }0 Q9 X5 T6 t/ F/ o9 k
- (Defun c:0a ()" V& S# s) u1 P) J0 C
- (setq mv_sc 100)1 k" _5 k2 h+ }' b4 X5 V! C
- (setq x0 1188)% z q+ H2 F' h
- (setq y0 840)
9 z! k8 X7 W3 q5 D - (setq x0 (* mv_sc x0)
: e* v7 \# c8 Q/ e - y0 (* mv_sc y0) )
/ t# \3 e$ U% m( G; t& @/ i0 b - (command ~% k) s- V4 q, t5 z% w) G
- "LIMITS" "0,0" (list x0 y0)
+ U- S0 p' \0 Z' N - "PLINE" "0,0" (list 0 y0) (list x0 y0) (list x0 0) "0,0" "_C"+ e- u1 v& g6 ]8 J" h
- "RECTANG" "8000,2000" "@108800,80000"0 `8 y& j/ X/ {" k/ m$ i( L. `. C( e
- "RECTANG" "8800,2800" "@107200,78400"# P- @5 I7 U C; K0 J; [' s
- "ZOOM" "_a" ))
$ F: v% H6 H- Y7 l& {: U3 a
/ B1 p3 M5 [) h5 ~- ;=====================================================================4 W4 X# ~7 L, [7 k5 A1 ] U
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================& I$ t) P0 Z- L) ~2 t
- ;=====================================================================4 F' W+ Z, ~' T s' c0 ^' f
- (defun c:khogiay (/ oldlst a b c d e f g h kho TL)
% @( C& f s* ?9 h - (command "undo" "be")
* T9 E! @6 D0 t; d, O' ?* F0 d8 n7 X$ M - (setq oldlst (mapcar 'getvar (list "CMDECHO" "OSMODE" "cecolor")))
: ?- u7 ]( k0 r O7 { - (setvar "CMDECHO" 0)
; T7 l1 J1 u) Q" P5 h" q - (setq a (getpoint "\n chon diem chen :"))
% n: _3 I' p A) E' b - (if (not TL) (setq TL 1.00)): N. ?6 t$ G* f% M5 w% o
- (setq TL1 (getDIST (strcat "\nScale <" (rtos TL 2 2) ">:")))2 z7 D* h/ Z0 N9 |% v/ r
- (if TL1 (setq TL TL1))
! {7 a5 z3 g9 y - (setvar "osmode" 0)
6 O) {% _: O- ~& K- L+ ~ - (if (not (tblsearch "layer" "Defpoints")) (Command "layer" "N" "Defpoints" "")), p6 g/ x& ~# x* v
- (initget "0 1 2 3 4")% s G$ Z/ ? _6 h
- (setq kho (getkword "\Kho A0 _ Kho A1 _ Kho A2 _ Kho A3 _ Kho A4 [0/1/2/3/4]? <0>:"))' G( O) M0 m$ q5 A
- (if (= kho "0") K+ N1 E; r# J( n7 K$ V
- (progn
2 i5 }/ E" N8 @7 e: p - (setq b (polar a 0 (* TL 1189))), k8 A9 o( d3 |- V) k0 I
- (setq c (polar b (/ pi 2) (* TL 841))) A& P; H% P- g5 [4 I4 ^+ @! x, ?# G
- (setq d (polar a (/ pi 2) (* TL 841)))* n2 {2 Z7 b& f( e
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))6 s t5 t: j- r' A- R
- (setq f (polar e 0 (- (* TL 1189) (* TL 24))))
3 P, k {& b+ m; n$ O3 L7 ? - (setq g (polar f (/ pi 2) (- (* TL 841) (* TL 24))))( J' A( E. Z5 ]7 s0 A
- (setq h (polar e (/ pi 2) (- (* TL 841) (* TL 24))))- D! J( ]4 h( Z* r2 V
- (command "Pline" e f g h "c")
S! h z+ N: r - (command "change" "last" "" "properties" "layer" "0" "")
1 _4 r4 u* h" p) W8 ^" C0 [2 Z1 J - (setvar "cecolor" "4")
+ I. b8 n+ S, h, V5 [ - (command "Pline" a b c d "c")
0 P$ \) @ P" B* w) P! C - (command "change" "last" "" "properties" "layer" "defpoints" "")))
7 A* r. g( W' _; j& E8 v: @ - (if (= kho "1")
P: |7 a- P: @# P) C! L6 m - (progn
. Y) I! c" a" x/ \" C' }. { - (setq b (polar a 0 (* TL 841)))+ V+ Y; F6 x% O! j) q1 L
- (setq c (polar b (/ pi 2) (* TL 594)))
I4 C, p+ W: D; Z3 o - (setq d (polar a (/ pi 2) (* TL 594)))/ O2 |: J; V* o e8 v9 L2 h6 D+ o
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 12 12)))))
' [ d( ~1 h, Q) F - (setq f (polar e 0 (- (* TL 841) (* TL 24))))
* f. L) A! L9 L. K5 M) P: M- c; W - (setq g (polar f (/ pi 2) (- (* TL 594) (* TL 24))))
) Z, E8 i* ~( ~; h$ q+ _* r f - (setq h (polar e (/ pi 2) (- (* TL 594) (* TL 24))))
% o8 M( C, B* k8 {. p/ B - (command "Pline" e f g h "c")
( [6 F% G# U4 v2 e* d, S' @% I - (command "change" "last" "" "properties" "layer" "0" "")
( E; o8 u/ h% F/ ^ - (setvar "cecolor" "4")) K; Z8 z1 z! N% S& O7 M! m
- (command "Pline" a b c d "c")
# n! M; p; Q1 o - (command "change" "last" "" "properties" "layer" "defpoints" "")))
5 S' j& J: g" V W4 f. \! ] - (if (= kho "2")
- T! ~4 w$ p( F; `4 v - (progn9 [6 f2 J# l6 u9 ?
- (setq b (polar a 0 (* TL 594)))% ?2 o; z+ a4 o' C; _
- (setq c (polar b (/ pi 2) (* TL 420)))
& t# K P! P# A - (setq d (polar a (/ pi 2) (* TL 420)))
( C. i- `( q* N1 N# I - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))6 L3 Y- o6 c& c$ K6 j- d% _: [5 [% G
- (setq f (polar e 0 (- (* TL 594) (* TL 20))))5 r1 B; S* U Y: S" @9 J! S+ d1 k; C. c% e
- (setq g (polar f (/ pi 2) (- (* TL 420) (* TL 20))))/ s" h6 v' U% j
- (setq h (polar e (/ pi 2) (- (* TL 420) (* TL 20))))
) Z- g* a& N, i3 Q$ W5 ^+ ], R - (command "Pline" e f g h "c")
0 P& D" h' B. k. u d3 t4 n - (command "change" "last" "" "properties" "layer" "0" "")8 Y% }/ _0 k1 b# q" H" ^
- (setvar "cecolor" "4")
, B3 p0 U4 G9 N7 V4 A0 V - (command "Pline" a b c d "c")
- S ]7 n9 @7 ]4 X- s) m1 l - (command "change" "last" "" "properties" "layer" "defpoints" "")))
7 i# G: s6 `9 W* ` - (if (= kho "3")
$ y" h& k) D4 |5 i' S - (progn
O* p4 g- S- J/ Z0 J+ R. W8 A* Y - (setq b (polar a 0 (* tl 420)))
# P: F! ~: q9 F9 m - (setq c (polar b (/ pi 2) (* TL 297)))) ]1 C* E5 [4 o s7 {5 N0 P# Z$ T
- (setq d (polar a (/ pi 2) (* TL 297)))
M9 i) W o& U - (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 100)))))# P* _* w8 v: g9 G- R& ]
- (setq f (polar e 0 (- (* TL 420) (* TL 20))))% [ P) Z$ F$ f& R8 d0 @
- (setq g (polar f (/ pi 2) (- (* TL 297) (* TL 20))))
# Y3 @* B G6 P, v - (setq h (polar e (/ pi 2) (- (* TL 297) (* TL 20))))
6 P% C, D# M7 a9 X" ?2 W - (command "Pline" e f g h "c"): Q; G) J8 v3 P7 a Q. s- ]: \
- (command "change" "last" "" "properties" "layer" "0" "")- H/ V9 v4 A( f/ Q
- (setvar "cecolor" "4")
+ r+ j; f; S4 r) F - (command "Pline" a b c d "c")
. z/ U8 R2 s% g9 `, O b - (command "change" "last" "" "properties" "layer" "defpoints" "")))/ _* j, I* n2 S7 Q" n+ J/ I4 _2 c
- (if (= kho "4")
) P n. i9 ~3 {& ]' w - (progn3 E* _# T) \# W* ?+ |& k4 S
- (setq b (polar a 0 (* TL 297)))* ]( f; s9 Z( w9 b8 I7 P
- (setq c (polar b (/ pi 2) (* TL 210)))
+ E# [5 U4 e! a- j4 i2 G - (setq d (polar a (/ pi 2) (* TL 210)))/ [5 _4 b: w* K F
- (setq e (polar a (/ pi 4) (* TL (sqrt (* 2 81)))))
( R& M5 z6 c; r2 R1 y. n$ ~7 w - (setq f (polar e 0 (- (* TL 297) (* TL 18))))! O0 p4 k/ l% W x! W* U( b+ b, a
- (setq g (polar f (/ pi 2) (- (* TL 210) (* TL 18)))). i# V/ m* p3 K" b% \) z
- (setq h (polar e (/ pi 2) (- (* TL 210) (* TL 18))))# ~, A" W. s6 C+ M9 v7 f; t3 {
- (command "Pline" e f g h "c") % B' s i, T3 m3 _
- (command "change" "last" "" "properties" "layer" "0" "")4 H3 G3 I! `: e" y
- (setvar "cecolor" "4")9 r' W# J. u" K
- (command "Pline" a b c d "c"): o4 N5 `) q+ P' X' \
- (command "change" "last" "" "properties" "layer" "defpoints" "")))% z! E5 h8 T6 C3 L( P) c! f4 Y4 @5 O2 e
- (mapcar 'setvar (list "CMDECHO" "OSMODE" "cecolor") oldlst) K; Z9 E/ O6 }( }! R
- (command "undo" "e")' ]" k1 M2 M! j; p# I
- (princ))
% {4 {8 O4 {( z) ?3 `, j' o. I7 c - ;=====================================================================- G1 B: M7 M3 p
- ;==================DAT KhoGiay Theo KHO GIAY BAN VE===================
6 ~" ]: t7 [& W4 G/ Q8 C. z2 u, D - ;=====================================================================
+ j7 Q0 G! |& O/ Y" t; J' ~
6 [6 ]) h: f; m+ n) R2 Y- ;===================================================================== L; a" q8 a7 [3 K
- ;===================DAT Ti Le Theo KHO GIAY BAN VE====================6 Y1 N! {' k2 O5 V
- ;=====================================================================
5 m7 y3 M- i+ p
; U( S2 u4 \! p+ W- (DEFUN C:SA6 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.1" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "5" ""5 y7 {/ N/ [; U- n7 `( h" ^
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.3" ""
' W$ h5 Z0 u9 z( x' c& X - "M" "MANH" "C" "9" "" "Lw" "0.1" ""
7 G' x% L, `/ A3 r! A' u - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
, Q7 P5 G3 ~; H8 R9 j1 U; G5 j - "M" "DIM" "C" "1" "" "Lw" "0.12" "". C% P( p7 Q" B; u, A
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""/ Z- o0 c6 i. f ? N( i E
- "M" "NOITHAT" "C" "3" "" "Lw" "0.12" ""
% i8 F8 [ H7 m( [! c - "M" "HATCH" "C" "5" "" "Lw" "0.1" "", P& _, Z: y/ ^4 r: g' S5 a0 ]
- "M" "COT" "C" "1" "" "Lw" "0.3" ""
8 y" I7 `/ h0 d# I' \ j! ~, Y; w2 z - "M" "Defpoints" "C" "7" ""
' F8 M0 ~5 r4 R5 r0 _# F4 }' N - "M" "0" "C" "3" "" "Lw" "0.12" ""
) t& Q9 x# y0 ]; W( b0 a - "M" "CUA" "C" "6" "" "Lw" "0.12" ""
1 }4 Z! D7 @( ] } - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""
0 ?* w4 P4 F' Q+ @8 B( ` - "M" "TIMTUONG" "C" "5" "" "Lw" "0.1" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "3" ""))2 W1 v8 I4 o9 K4 E
- (DEFUN C:SA5 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.12" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "10" ""6 O9 y2 J" O% y) o# J$ H& z
- "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.4" ""! l, f$ \* Z' E3 `
- "M" "MANH" "C" "9" "" "Lw" "0.12" ""
9 I7 S9 B4 V+ K% O - "M" "TEXT" "C" "7" "" "Lw" "0.12" ""
) ~* @" S9 L5 F( b N2 D - "M" "DIM" "C" "1" "" "Lw" "0.2" ""! C0 B4 \9 r$ F) q* V
- "M" "THAY" "C" "7" "" "Lw" "0.2" ""
' J) v7 r' E H0 q - "M" "NOITHAT" "C" "3" "" "Lw" "0.2" ""
4 s; x4 ?) ]: ^ - "M" "HATCH" "C" "5" "" "Lw" "0.1" ""* u, `9 Q1 d, `+ O* B8 m: {
- "M" "COT" "C" "1" "" "Lw" "0.4" ""
8 ?, N# r- k- |2 y - "M" "Defpoints" "C" "7" ""
6 Y, [2 Y; t @3 g - "M" "0" "C" "3" "" "Lw" "0.2" ""2 B* u% \* J! P
- "M" "CUA" "C" "6" "" "Lw" "0.12" ""
' D9 E) j3 n# ?) T! K: v$ j - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.12" ""7 \* s$ S) N/ S4 J5 H
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.15" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "5" ""))
6 D% p6 G, ~, A' X; ~3 }% `% U - (DEFUN C:SA4 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.2" "" "LT" "ACAD_ISO03W100" "" "" "LTSCALE" "20" ""
) _0 _7 \5 t5 F- A$ G# p- ~ - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.6" ""
2 m7 S6 n) X4 z+ w4 t - "M" "MANH" "C" "9" "" "Lw" "0.2" ""
1 f( l4 M8 u8 Y5 q - "M" "TEXT" "C" "7" "" "Lw" "0.2" ""' x1 @: W4 w3 s' j c$ L
- "M" "DIM" "C" "1" "" "Lw" "0.25" "". }! ?0 ]$ ?4 B. T8 x
- "M" "THAY" "C" "7" "" "Lw" "0.35" ""% j' j t6 i( j! g' E( p
- "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""6 F2 c$ h' U7 a2 H; ]
- "M" "HATCH" "C" "5" "" "Lw" "0.15" ""
8 g5 J% A/ h6 ^! R. E9 f! q, j - "M" "COT" "C" "1" "" "Lw" "0.6" ""
G# L$ K4 s( u - "M" "Defpoints" "C" "7" "") U4 ?! x+ F B. P5 O" y- q
- "M" "0" "C" "3" "" "Lw" "0.25" ""' g+ d) ` E7 e+ a7 ~5 M
- "M" "CUA" "C" "6" "" "Lw" "0.25" ""
5 E2 t+ D$ [* \. k; z0 o7 V - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.25" ""- j$ U) ]. l3 r8 Z
- "M" "TIMTUONG" "C" "5" "" "Lw" "0.2" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "10" ""))
) c' y# O/ R. w) a( Z - / `. F3 j+ J& R- S1 W; F! ^
- (DEFUN C:SA3 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "30" ""
5 Q& [) B3 u! ]; W - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
) b0 e+ F# c9 U1 [' i1 l, O% t+ I - "M" "MANH" "C" "9" "" "Lw" "0.25" ""3 P# c n% G) N. }, @) q1 s" D
- "M" "TEXT" "C" "7" "" "Lw" "0.2" ""
" O9 F3 ~8 \: X - "M" "DIM" "C" "1" "" "Lw" "0.35" ""
5 }& ^8 c/ Y, e+ E7 c - "M" "THAY" "C" "7" "" "Lw" "0.4" ""
i& d0 T! b I) R8 U \1 O! ] - "M" "NOITHAT" "C" "3" "" "Lw" "0.25" ""
. i6 Q8 x8 J! ^" f% X+ w" {9 V - "M" "HATCH" "C" "5" "" "Lw" "0.2" "" d% w+ N2 r) p: V/ U/ M
- "M" "COT" "C" "1" "" "Lw" "0.7" ""
3 |& b% K" g9 i* w( t - "M" "Defpoints" "C" "7" ""
8 P) F! V( v$ [+ c1 X - "M" "0" "C" "3" "" "Lw" "0.25" ""
$ y, ?) m. S8 X) U8 S4 M; m. ]' I - "M" "CUA" "C" "6" "" "Lw" "0.35" "") F: v# P% e: u% C9 E4 R
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
. p0 [/ E$ W+ g, P& Z - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "20" ""))(PRINC)
: ` J; n, h8 V$ F# o - 4 @5 f6 y8 `# U
- (DEFUN C:SA2 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.35" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "45" ""
9 V/ g# U# s6 S* t, P - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.7" ""
( c; x0 S, k. {6 Y* t% K- \& }% H - "M" "MANH" "C" "9" "" "Lw" "0.25" ""
5 ^* d4 }+ a, e8 H+ ? - "M" "TEXT" "C" "7" "" "Lw" "0.25" ""0 j3 p+ f) M/ ~- t) q
- "M" "DIM" "C" "1" "" "Lw" "0.3" "") q) J3 z$ Z6 w
- "M" "THAY" "C" "7" "" "Lw" "0.4" ""* V9 f% q( A5 W3 o9 H6 D- P/ G! ]* `" [
- "M" "NOITHAT" "C" "3" "" "Lw" "0.3" ""6 p: R+ n3 w. U8 r @
- "M" "HATCH" "C" "5" "" "Lw" "0.2" ""
. a |# b: v5 Y4 }5 v! Q - "M" "COT" "C" "1" "" "Lw" "0.7" ""
2 q3 k' | R @ - "M" "Defpoints" "C" "7" ""
/ s1 U1 N3 o$ u8 e5 e - "M" "0" "C" "3" "" "Lw" "0.35" """ L3 j. o: m6 H. o6 `3 e
- "M" "CUA" "C" "6" "" "Lw" "0.35" "") b7 o4 y% X/ R% V, [' o
- "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.3" ""
+ W( }0 y1 K3 l$ [3 |/ H - "M" "TIMTUONG" "C" "5" "" "Lw" "0.25" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "30" ""))# _7 P% ^5 o, z$ q
( q7 `" f" T2 p- (DEFUN C:SA1 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.4" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "60" ""
: y0 y3 d: U( l, R7 o - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "0.85" ""
v) Z/ S% c. K5 x0 e2 }' s - "M" "MANH" "C" "9" "" "Lw" "0.35" "" i- e5 G; Q( l x/ k" q; V
- "M" "TEXT" "C" "7" "" "Lw" "0.5" ""5 ?, n5 [' v6 M. B4 K
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
% J: M9 Z1 ]! ^- v# v' v - "M" "THAY" "C" "7" "" "Lw" "0.4" ""5 X5 k- Z% c% x# S
- "M" "NOITHAT" "C" "3" "" "Lw" "0.35" ""
+ e+ l4 @, |8 }5 ` - "M" "HATCH" "C" "5" "" "Lw" "0.25" ""
$ \7 ?1 V/ D, r - "M" "COT" "C" "1" "" "Lw" "0.85" ""1 c" N7 ~) f3 U' O, V5 {
- "M" "Defpoints" "C" "7" ""
4 N6 r# _+ S& K - "M" "0" "C" "3" "" "Lw" "0.35" ""7 X! O, a0 d$ w1 B1 t7 v& V7 Y
- "M" "CUA" "C" "6" "" "Lw" "0.4" ""
6 s1 X# a8 ]4 T' X& L/ q - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.35" ""
3 `6 i* s, J3 Q& W1 \% ?1 K U9 g - "M" "TIMTUONG" "C" "5" "" "Lw" "0.3" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "40" ""))
. k7 p' p: P1 o* R# B5 y. a -
4 S0 G$ c! a& h: N - (DEFUN C:SA0 () (COMMAND "-LAYER" "M" "NETDUT" "C" "8" "" "Lw" "0.5" "" "LT" "ACAD_ISO03W100" "" "" "" "LTSCALE" "85" ""
: e' c; a7 J* s- I l0 F+ T - "-LAYER" "M" "TUONG" "C" "4" "" "Lw" "1" ""+ {: p0 G) @+ }8 q5 `. h2 B$ G
- "M" "MANH" "C" "9" "" "Lw" "0.35" "" S8 ^; f) k L
- "M" "TEXT" "C" "7" "" "Lw" "0.5" "". @5 e' r$ n: P. J
- "M" "DIM" "C" "1" "" "Lw" "0.35" ""
9 w8 a, M7 T8 ^# p! T O2 x - "M" "THAY" "C" "7" "" "Lw" "0.5" ""
) Y. Q+ x2 c0 W$ P' c1 I - "M" "NOITHAT" "C" "3" "" "Lw" "0.4" ""# [+ G/ U/ w+ z! b; `7 i; @1 f
- "M" "HATCH" "C" "5" "" "Lw" "0.35" ""/ I1 V) u/ ~5 D5 H: P
- "M" "COT" "C" "1" "" "Lw" "0.1" ""0 p6 h; ?8 r/ I. i8 _+ S" W7 P& ]
- "M" "Defpoints" "C" "7" "") p9 Z, ^$ B: @ X
- "M" "0" "C" "3" "" "Lw" "0.5" ""
" U) v3 r, j2 C B, K7 h. l% v7 O1 f - "M" "CUA" "C" "6" "" "Lw" "0.5" ""
5 _- K& o$ R9 G/ P6 { - "M" "CUA MATDUNG" "C" "6" "" "Lw" "0.4" ""
; {# k- t& h( M0 B - "M" "TIMTUONG" "C" "5" "" "Lw" "0.35" "" "LT" "ACAD_ISO10W100" "" "" "LTSCALE" "55" ""))
( y. Y( |$ a7 g& _6 Y% `/ k - (DEFUN C:O () (COMMAND "OFFSET"))2 y. S5 p) C; _% K& I8 b9 u/ E
- (defun c:s1 () (command "surftab1"))* O5 g% W- r, W7 I
- (defun c:s2 () (command "surftab2"))
2 L) d; E0 ^; y+ ~. \0 i! D3 i - (defun c:ep () (command "explode"))
% x, W# @: ^$ c3 h8 \ - (DEFUN C:QS () (COMMAND "AUDIT" "Y" "purge" "all" "*" "N" "QSAVE"))
5 W0 F- y6 C5 V* `- l. L - (DEFUN C:QV () (COMMAND "QSAVE"))
; H. X/ L/ k" c; p2 R0 a) H - (DEFUN C:S () (COMMAND "STRETCH" "C"))" f( I! x3 \) I. v- K# {+ g3 c
- 2 x1 u% ]# C' q x5 \( X* r
- ;************************** CAT DIM **************************
! z$ e# j* o: O
f; l$ m% `! ]" m5 d/ Z" B% T7 S1 J- (DEFUN C:DC (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI PT13I PT14I2 T$ s8 i% Z6 U- J9 D, n$ b) C3 h
- PT13N PT14N O13 O14 N13 N14 OSM OLDERR PT10 PT11)# `) S6 F [0 O: O8 {4 p# ?
- (SETQ CMD (GETVAR "CMDECHO"))
2 m) e' e3 F% L) ~ - (SETQ OSM (GETVAR "OSMODE"))
3 D- m" `! C1 r+ X7 J1 P - (SETQ OLDERR *error*# {$ F) D. \( C F
- *error* myerror): e W6 o+ A# X6 f& g& q' T. |4 V
- (PRINC "Please select dimension object!")5 K2 L& K9 x# G$ [" B
- (SETQ SS (SSGET))
3 m& K& J1 c' d3 L3 F+ ]% h' T. K/ l1 T - (SETVAR "CMDECHO" 0) t7 w4 {# V! g$ I
- (SETQ PT (GETPOINT "Point to trim or extend:"))
) a6 Y# r7 i$ c0 R3 B - (SETQ PT (TRANS PT 1 0))
* f+ p. \1 E, _5 r/ E - (COMMAND "UCS" "W")
, S t4 U, _" | - (SETQ LTH (SSLENGTH SS))
' T0 @+ Y' Q: i" N" Z - (SETQ DEM 0)8 B- X) ~2 M- R7 ]1 L7 h, `- i
- (WHILE (< DEM LTH)
8 w5 o7 T/ l( l8 ?% r: d! t9 ] - (PROGN
+ W* s. Z- \2 O) S* K - (SETQ DS (ENTGET (SSNAME SS DEM)))
/ i: C$ c" J, V' t" r5 P - (SETQ KDL (CDR (ASSOC 0 DS)))! ^! l5 J I/ Y) j+ K( Q
- (IF (= "DIMENSION" KDL)$ a4 c6 X! E; {1 v
- (PROGN8 b1 ]6 M4 W8 U x: _
- (SETQ PT10 (CDR (ASSOC 10 DS)))
# k. P) V' j# {" O( C( p9 Y - (SETQ PT11 (CDR (ASSOC 11 DS)))
! O }! r* M$ K0 [ - (SETQ PT13 (CDR (ASSOC 13 DS))): U2 ~ |3 B5 X
- (SETQ PT14 (CDR (ASSOC 14 DS))) s. i6 B( V" e
- (SETQ N70 (CDR (ASSOC 70 DS)))
: l: R* L' {' W9 { - (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
" P8 e# I) E& x) @6 {; ] U; y - (PROGN
# h4 U- ^3 R) `/ N/ C - (SETQ GOCY (ANGLE PT10 PT14))2 u6 c# ]5 w6 D; c- r; q |2 _
- (SETQ GOCX (+ GOCY (/ PI 2)))2 M/ \: }1 J7 Y9 d8 B& `3 ^( r0 }+ L
- ): w$ ^2 p; B9 k, G
- )
( [0 ^5 X# X" R4 M5 Y7 h - (SETVAR "OSMODE" 0)
5 B% `3 ~3 C4 P) C: g1 U - (SETQ PTI (POLAR PT GOCX 2))! C9 [: }" J2 M; G5 U9 i
- (SETQ PT13I (POLAR PT13 GOCY 2)); c" U- S- {: g9 n) B
- (SETQ PT14I (POLAR PT14 GOCY 2))
5 Y3 u# X9 G- I. l* \/ _2 A - (SETQ PT13N (INTERS PT PTI PT13 PT13I NIL))
1 B( m' y' s% C - (SETQ PT14N (INTERS PT PTI PT14 PT14I NIL))
) _4 a+ W; y/ Z# I& b- y - (SETQ O13 (ASSOC 13 DS))
$ \3 K' s" L) W0 G' X- Y p - (SETQ O14 (ASSOC 14 DS))- G3 D' T2 d% l+ h2 E8 j3 ?0 U
- (SETQ N13 (CONS 13 PT13N))0 z- J- H _7 n* A4 |0 _
- (SETQ N14 (CONS 14 PT14N))6 r: p$ D* J# Q
- (SETQ DS (SUBST N13 O13 DS))
$ K9 p' n) L5 h8 {, r- x - (SETQ DS (SUBST N14 O14 DS)) }8 s9 y. s# T5 M% S! X0 D
- (ENTMOD DS)/ I; @' m2 K; ]' U/ r% H
- )
, g& q. Q2 g6 z4 }1 [; c- K% A - )6 i0 R# Z$ P: d0 ]
- (SETQ DEM (+ DEM 1))
7 q n7 G7 a, Q3 ? - )
# j. b# m8 D- T2 J6 D - )
: \; K4 I& p! T0 ^0 v+ B+ c - (COMMAND "UCS" "P")
0 i6 M7 c5 I$ C6 C5 l5 q' d5 F& ] - (SETVAR "CMDECHO" CMD)
0 S% o2 u- Y5 K0 _1 D - (SETVAR "OSMODE" OSM)
4 V. w6 l- H) ^* w - (setq *error* OLDERR) ; Restore old *error* handler
5 i" d: F: u" f# o3 s8 P - (PRINC)
! v( c& O; ?2 T+ x$ r: V9 n2 a - )* h2 f. B9 C9 d& N- G0 l
- : h5 r+ r5 q# P* V" u
- (DEFUN C:BD (/ CMD SS LTH DEM PT DS KDL N70 GOCX GOCY PT13 PT14 PTI
, d3 O; v& v7 ]& ]1 M6 e: S$ q/ ] - PT10 PT10I PT10N O10 N10 PT11 PT11N O11 N11 KC OSM OLDERR)
# N5 o! |7 S y+ z. V0 ? - (SETQ CMD (GETVAR "CMDECHO")): x; _5 L) _, A( ^$ y
- (SETQ OSM (GETVAR "OSMODE"))
. G8 _: @. C' o# q9 \* M+ j - (SETQ OLDERR *error*! p% s* F H/ Q( u
- *error* myerror)7 j3 }" ?4 }! h! T
- (PRINC "Please select dimension object!") }! }; F# r p/ z# S
- (SETQ SS (SSGET))
- J+ P5 d' W0 a( y% P - (SETVAR "CMDECHO" 0)
4 d: G3 {& V$ r# X5 m - (SETQ PT (GETPOINT "Point to trim or extend:"))+ Q9 S. w3 i% j/ h
- (SETQ PT (TRANS PT 1 0))
) i% H. V) U9 Z$ R - (COMMAND "UCS" "W")0 j0 G3 @2 h; H1 R' u6 U& b
- (SETQ LTH (SSLENGTH SS))
2 k! M) g# m; i- K - (SETQ DEM 0)
3 e% h! C ?7 T& Z+ ^/ _ - (WHILE (< DEM LTH)4 j6 E/ \, F( o& X
- (PROGN
- R$ {" i2 z( J7 H - (SETQ DS (ENTGET (SSNAME SS DEM)))
) q- Z6 C5 W e3 X) }& k: H - (SETQ KDL (CDR (ASSOC 0 DS)))
7 u$ g3 N. L1 l. P5 ] - (IF (= "DIMENSION" KDL)8 B9 v7 L) v3 C z- `8 |/ l
- (PROGN
' G7 L( z) k* J3 ?7 `2 k - (SETQ PT13 (CDR (ASSOC 13 DS)))
2 R6 D" C4 Z( |7 x2 D- S7 | - (SETQ PT14 (CDR (ASSOC 14 DS)))
?; J O# T. D3 Y, F - (SETQ PT10 (CDR (ASSOC 10 DS)))
% D7 G! G0 i7 X/ O$ [ - (SETQ PT11 (CDR (ASSOC 11 DS)))
/ D' m2 w, }) b: y - (SETQ N70 (CDR (ASSOC 70 DS)))1 {! ?" i( z/ F; z1 ]5 `9 Q
- (IF (OR (= N70 32) (= N70 33) (= N70 160) (= N70 161))
$ c+ [3 B8 y9 ?, {+ s* b2 V - (PROGN
" X$ k1 N0 C E6 j+ E1 j$ \9 w - (SETQ GOCY (ANGLE PT10 PT14))6 r, c' r- [. v. P2 U! u1 c
- (SETQ GOCX (+ GOCY (/ PI 2)))
0 F1 Q$ O6 l @. W1 N2 F - )! U" l: M2 s' w$ \ S
- )0 d6 R) G7 s* V8 S
- (SETVAR "OSMODE" 0)( x9 ?' C, w; m
- (SETQ PTI (POLAR PT GOCX 2))
$ O5 Y7 Z2 j* u8 q/ Z9 S8 x - (SETQ PT10I (POLAR PT10 GOCY 2))
9 x( p% c% B3 Z) T9 Z7 [ - (SETQ PT10N (INTERS PT PTI PT10 PT10I NIL))
# z* E/ a ?4 @. f - (SETQ KC (DISTANCE PT10 PT10N))0 }" \* }+ u3 n: E2 f
- (SETQ O10 (ASSOC 10 DS))
/ c: A1 s& B! F B - (SETQ N10 (CONS 10 PT10N))* i F8 E/ }) x: D+ b- J4 Z* t! P. q
- (SETQ DS (SUBST N10 O10 DS))# y2 N& U/ u" e
- (SETQ PT11N (POLAR PT11 (ANGLE PT10 PT10N) KC))
+ C- Z h. _% v& Z: k* \7 s+ L! | - (SETQ O11 (ASSOC 11 DS))! A, H: d! O7 ^0 \
- (SETQ N11 (CONS 11 PT11N))( E/ e7 b% U( u9 O
- (SETQ DS (SUBST N11 O11 DS))+ _: g; h7 p3 T" R0 W/ C) \
- (ENTMOD DS)
0 W- F7 }$ @1 B2 n - )! h2 Z C: V) H( \
- )
# E- k U! N, j' V; e: _# e - (SETQ DEM (+ DEM 1))! H; a" A6 X: g" i( y% B8 x. U
- )0 D* o# S* p) P$ l" x1 E
- )3 F' V& \ R2 b* M7 `7 f
- (COMMAND "UCS" "P")8 g7 _- w w& {4 {6 U* ]
- (SETVAR "CMDECHO" CMD)
' ~! b' B2 R/ g" {" L - (SETVAR "OSMODE" OSM)
: A& _* \3 |- g( ? y4 K - (setq *error* OLDERR)
4 J9 h9 ~2 ?: G$ l: K - (PRINC)% q6 @) L% K- v/ o. `) S
- )5 U( ?+ H* }, G" y! Y
- o5 x2 {# p8 ]6 p: r6 S/ u
- ;;; ================ BAT - TAT CHE DO GACH CHAN TEXT (TU) =================
x. P9 Y4 [+ v% {5 ^# R - 1 g8 O+ X2 d. a5 Q y. k
- (defun c:tu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can gach chan ")
. l: W( f2 n F0 J; b3 s# S: T+ I6 c% D2 M - (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")2 N. x* E5 K, c4 _7 e/ a/ B; f$ g
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
" S( @4 a2 w1 w+ U) W - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
/ o: x8 k* h s7 c( M+ \/ q - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%u")5 [" `/ f! u) V \) b9 f8 n& C
- (= testxt "%%U"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%u" txttxt)))! P/ V, W! a& G7 o: L6 w+ x
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt))) C' m* B+ `) B( p
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ)): c. H' H* u7 Z) O# l$ B$ u* \3 n
- 6 B/ s7 T& g1 E- X
- ;;; ================ CHEN COT (TUU) =================( |$ u: R) f! T, D
- - k1 K, g8 v2 Q* N0 x! i
- (defun c:tuu () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen cot ")+ E# M) |1 y7 x2 D3 R% Y
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")
; H% s4 k- P6 r$ X+ L4 L! X! s - sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt
0 D- D# t1 J4 { - (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
* t* i" K; G) |0 D8 Q3 o. _ - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%p 0,000")
% g+ v* x# L ^, {" T: Q$ N - (= testxt "%%P 0,000"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%P 0,000" txttxt)))
% `$ }& m/ [3 I2 K' T* D - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))
: e% x4 F+ l9 c! G) k; Z - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))' Z0 L. x7 F, w- H- N; g
- - l) N9 R* T4 |6 `
- ;;; ================ CHEN KY HIEU THEP (TP) =================
7 M7 T' f9 t- x: }( e: K3 Z$ s7 y
5 p% q2 M. ^' r- v' A1 V- (defun c:tp () (setvar "cmdecho" 0)(prompt "\nHay chon dong TEXT can chen ky hieu thep ")6 j C* d; {. D6 Z2 y: l' \! o
- (prompt "\nSelect objects: ")(command "select" "au" pause)(setq sstxt (ssget "p")4 o c) k& J! W# h1 H3 h
- sslen (sslength sstxt) ctr 0)(command ".undo" "mark")(while (< ctr sslen)(setq listxt' c; H) t% }' S# y8 p. X
- (entget (ssname sstxt ctr))txttxt (cdr (assoc 1 listxt))enttxt (cdr (assoc 0 listxt)))
4 G7 O, G& [# l8 V b4 d9 b - (if (= enttxt "TEXT")(progn(setq testxt (substr txttxt 1 3))(if (or (= testxt "%%c")) j q6 s1 a: L. d) E
- (= testxt "%%C"))(setq newtxt (substr txttxt 4))(setq newtxt (strcat "%%c" txttxt)))5 E2 M& j8 m+ d. P: q/ s; w- ^
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))(entmod listxt)))- X4 J& [, P, \3 n) ]$ F
- (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
3 x0 I! i7 e$ y7 e; A4 c
- O6 \: h" a) e D- ;=========================== TAM TUONG (TAM) =================================7 n$ `) t- c3 t( v8 J1 d# ~" {
- $ `' c+ {1 j) L3 K' p
- (defun c:tam(/ data_m)' M6 r4 A: U5 a( C4 o9 D8 a {
- (defun import_data(/ i)(setq data_m (ssget))(if (= nil distan_m) (setq distan_m 110.0))
; O8 Y2 D( c j5 t; C- B - (princ "Distance (")(princ distan_m)(princ "):")(setq i (getreal ))(if (not (= nil i))* d3 Q3 ^- u0 A, F/ U- E1 A
- (setq distan_m i)))(defun process(/ ent check)(defun p_check()(setq check 0)+ L& ?0 k# L2 b. I6 W1 K0 [
- (if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))(princ))(defun p_d_offset& l# B5 b- K0 S! [. ]# U1 C; F4 U
- (/ p1 p2 p3 p4)(defun makeline(/ e2 e5)(setq la (list (cons 0 "LINE")(cons 5 (cdr
: M4 J0 v! h% v& N; E - (assoc 5 ent)))(cons 8 (cdr (assoc 8 ent)))(cons 10 p3)(cons 11 p4)))(entmake la)(princ)( g9 f/ ]. i; w+ ]% m G @ P5 g
- )(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)))(if (not (= p1 p2)) (progn (if
' L! a/ S L+ ~7 ~: f - (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn (setq p3 (list (+ (nth 0 p1) _. P, N$ G3 { A5 D+ Q
- distan_m) (nth 1 p1) (nth 2 p1)))(setq p4 (list (+ (nth 0 p2) distan_m)(nth 1 p2)5 A3 v( l Q8 M6 J1 C1 |* y3 j
- (nth 2 p2))) (makeline) (setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1)))* C9 i6 @" J' ~& Z
- (setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2))) (makeline)))(if (<' o6 R, V% n9 |& O
- (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn (setq p3 (list (nth 0 p1) (+ (nth 1 p1)# @8 ?5 B4 c$ Q, C# W
- distan_m) (nth 2 p1)))(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2)))- E- o% S2 h2 r+ b e. _
- (makeline) (setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1))) (setq p48 U5 H+ F3 K: s& z
- (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2)))(makeline)))))(princ))(if (not. U4 f7 U( K% D3 ^5 Y' F) q2 F- V
- (= nil data_m)) (progn (setq i 0)(while (< i (sslength data_m)) (progn(setq ent (entget2 G7 S# D) z4 ?$ C! v5 Y# ?
- (ssname data_m i)))(p_check)(if (= 1 check) (p_d_offset))(setq i (+ i 1))))))(princ))
# }* z& ]2 P$ {5 u/ o5 @ - (import_data)(ai_undo_push)(process)(ai_undo_pop)(princ))* t* M7 k5 ~' m6 `' c' `
- 8 D* m. V. H& p( m, g& R. t
- ;============ GHI CHU PHI (T1) ================
4 _1 |5 }+ Z9 ` r& Q% n) s
% w) D+ R# R% f, R9 [* O }- (defun c:DuongDan ()(setq D1 (getpoint " Diem thu nhat: "))(setq D2 (getpoint "Diem thu hai: " D1)); V1 |; U c5 q
- (if (> (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (< (car D2) (car D1)) (setq D3. {: ~- _2 X* M* n
- (polar D2 PI 16)))(if (= (car D2) (car D1)) (setq D3 (polar D2 0 16)))(if (> (car D2) y% h, A7 V/ \. h6 m
- (car D1)) (setq D4 (polar D3 0 3.2)))(if (< (car D2)(car D1))(setq D4 (polar D3 PI 3.2)
* B6 m( ?' j- v7 h8 b3 ^ - ))(if (= (car D2) (car D1)) (setq D4 (polar D3 0 3.2)))(if (> (car D2) (car D1))& N" M; d' l. W3 w5 U& w
- (setq D5 (polar D2 (/ PI 9) 3)))(if (< (car D2) (car D1)) (setq D5 (polar D3 (/ PI 9). w6 h s U: {; l1 f+ i; H4 e( U0 i
- 3)))(if (= (car D2) (car D1)) (setq D5 (polar D2 (/ PI 9) 3)))(command "color" 1)* } `. R# V3 C$ u; S7 w
- (command "line" D1 D2 D3 "")(command "circle" D4 "3.5")(command "color" 7 )& K+ f& |3 b9 [) C# L1 P( j
- (command "text" "m" D4 2.5 0 "1")(command "text" D5 2.5 0 "%%c6a150")% m6 q; Y; W9 r; x
- (command "ddedit" pause))
6 S- @) ]5 O3 v6 l( G0 h2 B - # {6 l X- q9 b; w N6 E% ^7 z
- ;;; ========================== Join (J) =================
% L, g9 s% P" }5 C9 j - 7 `* X8 D. L m8 ^, t
- (defun C:J () (Setvar "cmdecho" 0)(setq m:err *error* *error* *merrmsg*)(setq sset (ssget))* v0 T$ ~5 \* |. n( X' H
- (if (null sset) (exit))(setq kt (getstring "\nJoin all (Y/N) <Y> ? "))
$ T+ N. T5 k/ y2 R - (setq ssl (sslength sset))(setq temp (entget (ssname sset 0))etype (cdr (assoc 0 temp)
* _; ` h/ J* u1 w8 y8 s& B - ))(cond((or (= kt "Y") (= kt "y") (= kt ""))(progn (cond((= etype "POLYLINE")" j2 u e2 l: _ w5 s- B
- (COMMAND "PEDIT" sset "J" "all" "" ""))(if (or (= etype "LINE") (= etype "ARC")), {: J2 E5 `3 I/ w" z0 [' z
- (COMMAND "PEDIT" sset "" "J" "all" "" "")))))((or (/= kt "Y") (/= kt "y") (/= kt ""))
9 L+ m! u2 c8 `6 Q' ` - (progn (cond((= etype "POLYLINE")(COMMAND "PEDIT" sset "J" sset "" "")) 1 I' u4 u2 Z: V! q4 N. P
- (if (or (= etype "LINE") (= etype "ARC"))(COMMAND "PEDIT" sset "" "J" sset "" ""))))))
1 q1 g- z8 o& O. _$ r `+ } - (setq *error* m:err m:err nil)(princ))
2 z5 @: B, j% F/ O - * _ F x1 ?$ z, E
- ;=====================================================================3 n y' H9 K( D1 V; u. z+ Z }
- ;;; DOOR.LSP 1.0, Copyright (C) 1998 by CAD Department, HUCE.
; ?9 E- ~1 Q) z) B9 ~: Y8 B/ f - ;=====================================================================: \) T9 S. o" L ?
- & U" Q$ v: C( `( d, z
- (defun C:D1 (/ p1 p2 p3 p4 side dis wid ang angsile old)
' o2 T9 B, M6 t - (setq old (getvar "OSMODE"))
! z: z# ~# u( G* @ - , N! S; C! ?$ G' w
- (setq p1 (getpoint "\nStart point:"))
5 d/ g) N2 Q& R1 W9 M - (setq p2 (getpoint p1 "\nEnd point:"))
, n3 T% t$ t" t4 {/ n2 d - (setq side (getpoint p2 "\nOpen side"))9 U1 M' b" D6 X( ^) k) f# H; y# P5 F
- ) h% w8 e1 _! U. u) V* W# p5 V
- (setq dis (distance p1 p2))4 s* R% k. a2 ]2 u! G$ y' f
- (setq ang (angle p1 p2))1 O9 j) C8 s- A
- (if (< ang (angle p1 side))+ H0 g* Q& H2 U; |' J; S
- (setq angside (/ pi 2) )+ @ T3 ^( z: \# a) b
- (setq angside (- (/ pi 2)))
: m7 ]* n% R" J9 ] - )
: `! u- X: ]# x% c9 ^2 t1 Y4 q - (if (>= (- (angle p1 side) ang) pi)
1 i! f8 y6 [) w* z2 o - (setq angside (- (/ pi 2)))& g% T/ s0 h8 v% ?' @
- ), Z& r/ P) C: C1 t8 E# X2 i0 v
- (if (>= (- ANG (angle p1 side) ) pi)
+ m6 ~8 b3 `9 i; ? - (setq angside (/ pi 2))8 G" M1 k! D% N# {6 w& p- G0 U
- )8 ]5 Z) j/ d* M C
$ s; `8 u( |: A5 G1 R2 D# ~- (setq p3 (polar p2 (+ ang angside) dis) )$ L( O* S T- K3 k8 P' `, s
- (setq p4 (polar p1 (+ ang angside) dis) )$ x/ _9 o+ s$ x0 ^
- (setq wid (/ dis 15))9 @8 U/ s" y: F* k4 R6 G, S
- 5 q* c4 f/ s: }' K/ c
- (setvar "OSMODE" 0); O1 ^4 J1 h7 H1 A' v9 j' C0 S
4 w( v: N4 N6 J0 r& _0 \- (command "PLINE" p1 "A" "D" p4 p3 "L" p2
- Q8 V( a1 C* Y+ a5 H - (polar p2 (+ ang pi) wid)
& @! L. p# i3 ?) L) B - (polar p3 (+ ang pi) wid) 6 C; t7 A5 |# n. C7 V8 W
- "")8 P. t. {- F# q6 Z. B0 R
- " Y( \+ F2 p$ ?/ V7 E% |( X
- (setvar "OSMODE" old) K- l+ p7 |0 |0 N5 W$ g/ E
- (princ)( e2 i) A8 O+ X
- )* v% j6 Q1 U! g& x5 z
% R* x5 h/ [$ [' C- o! N/ ]% m- ;=====================================================================
- @5 C: ^2 c* a9 ]7 _2 c ? - & E$ X; y! u6 a# F0 S: `! c
- (defun C:D2 (/ p1 p2 p3 p4 side dis wid ang angsile old)
7 N# X0 l; e1 e( _9 C2 ~ - (defun cua1 (pt1 pt2); u9 Y+ V" y! G2 X4 V* L
- (setq p1 pt15 f: }( {4 Z. u3 J. c" E1 P
- p2 pt2)
9 p% N, e: [% m - # V. \& j" G; t* U/ i
- (setq ang (angle p1 p2))1 j) X# M6 ]5 h) ^; g$ c9 V
- (if (< ang (angle p1 side))
: h* V& \8 g5 I0 V" f& o - (setq angside (/ pi 2) )$ _ |- h6 h' ~; u; [
- (setq angside (- (/ pi 2)))
! t0 r7 e7 `/ n, U3 W - )# J$ T3 R- f- N: Y9 d) p J6 N3 |7 v
- (if (>= (- (angle p1 side) ang) pi)8 x" a. X; w4 J7 F7 u
- (setq angside (- (/ pi 2))): @) ?+ r9 {. z( b4 O2 ?9 H/ Z
- )
: k5 o4 r. z2 p0 T# p3 p - (if (>= (- ANG (angle p1 side) ) pi)
7 Q5 { Z% U1 x* t; n9 s - (setq angside (/ pi 2))( n- C3 s& }/ I/ ]/ i8 }
- )
! T! U( K# F$ V- @: T8 {: c3 S - / @6 g1 [1 r( O8 E/ E3 _( z- h
- (setq p3 (polar p2 (+ ang angside) dis) )+ z' A5 O r5 P T
- (setq p4 (polar p1 (+ ang angside) dis) )
" S5 t+ n4 B; \+ m2 r: Z - (setq wid (/ dis 15))
2 w9 G/ N! `) ~
: O$ o/ F6 r$ w0 p- (command "PLINE" p1 "A" "D" p4 p3 "L" p2 9 ]& E% J Z T9 [. M# t
- (polar p2 (+ ang pi) wid)
* b- a) |5 |/ n" ~4 b - (polar p3 (+ ang pi) wid) . [. ~; C+ u: |
- "")
2 x1 ~/ p, s8 g - )
2 | X* W/ }& [2 h$ p6 M# K - ;=====================================================================
( `9 x: Y( W' `7 a! t - (setq old (getvar "OSMODE")) 6 u1 ]- E4 {+ ?0 g
8 r, C7 x1 O I- (setq p1 (getpoint "\nStart point:")). a, j0 t7 E" o8 t
- (setq p2 (getpoint p1 "\nEnd point:"))
* V E- S' N+ P$ l+ U+ _$ D& t+ O. N - (setq side (getpoint p2 "\nOpen side"))
& Q3 D3 M* t# M$ B- P - " o/ a; }) X; {
- (setq dis (distance p1 p2))1 h! o' a5 a# Q6 s$ a- G9 I
- (setq dis (/ dis 2))0 b) q/ Z7 d7 {' G' y
# H# E! H5 h1 U3 u) V( k- (setvar "OSMODE" 0)
& U* m, ?& O. o; u; O - + ]+ ^4 P1 q* Q3 Y, T
- (setq p1 (polar p1 (angle p1 p2) dis))
5 S- r. l g* f& S0 e" E0 H - (cua1 p1 p2)
) v1 i5 Q8 l' m6 J- T* v6 ^ - ; R: K- M; w, R
- (setq ang (+ ang pi))
8 O* c, h7 d V- V2 u( ]) B - (setq p2 (polar p1 ang dis))
% l C$ b! r: e8 B, C3 Q' ^ - ; (setq side (polar p1 () dis))7 D2 F, u" Q1 w! Q# `& E
- (cua1 p1 p2)
9 d7 D) @% U" X* e+ j" E - ' `0 ~5 x2 H: C. v+ o
- (setvar "OSMODE" old)
5 L1 z& Q' {6 Y1 m }9 d' p9 ? - (princ)/ P! O4 s) z f) J4 u
- )- A( e4 M9 s$ F! s( n
( ^0 h! {/ U$ d) R1 R% ~: }- ;=====================================================================
" `- e' Z# q# d - ;"Glue" text strings. All adopt first's properties.4 x- e# Z7 k' W4 F0 [' ^. h
- ; Author:
9 J6 e; L9 F8 v' k1 e - ; Henry C. Francis4 w6 u- y, P& l
- ; 425 N. Ashe St.
( M/ D8 J8 Y2 a/ D: P& D& d - ; Southern Pines, NC 28387
$ A* ]$ a" f4 E7 b" ` - ; http://www.pinehurst.net/~pfrancis7 s( y! w& \. }* ^0 l
- ; e-mail hfrancis@pinehurst.net4 |3 W5 R) Q4 b7 O0 g; o
- ; All rights reserved.0 @6 v. y5 l3 A- o
- (defun c:gst ( / ename ent1 ent2 old1 oldsl old10 old11 old40 old50 newstr newsl new1 new10 new11)
" U: _/ f' l6 B5 _3 l# T6 y' g7 | - (while: M/ M/ g" g& o% o( J$ I
- (not
H0 q4 ]# L5 @4 Q" j0 v2 p - (and6 ~% O# a3 J" z, E; j3 e- s
- (setq ename1 (car(entsel "\nSelect first text string to join: ")))! n, S% U& a# K9 ~1 O# w$ f
- (setq ent1 (entget ename1)); W) ^7 y' v& z( ?' T0 ^
- (eq(cdr(assoc 0 ent1))"TEXT")
) w# }, {$ v% ]) Z( N% U. P) @ - );and
+ R; v$ s4 b* g. T0 v/ j7 } - );not/ v7 W5 t$ @. @, a. p
- );while
; U8 O. s7 E: Y/ J+ u - (setq old1 (cdr(assoc 1 ent1)))
1 w9 ~3 D. v$ q8 v, J3 j; n, s7 ?# R - (while) w+ j5 L/ @) K7 \; J7 ^
- (not& I6 C, k% O+ s, Y# \
- (and+ F) d- _% \4 V$ w+ o; n* X
- (setq ename2 (car(entsel "\nSelect second text string to join: ")))" L; j- {( y8 z& V- A
- (setq ent2 (entget ename2))
; I# i/ s/ ?" L8 W( n - (eq(cdr(assoc 0 ent2))"TEXT")
) c ^" t) D8 D# K' V8 f9 M9 r - (not(eq ename1 ename2))
! _$ {7 D9 i) q0 B2 H& {% F5 w2 J - );and
, t5 D. `3 I/ d$ V/ t6 K( W - );not
3 ?5 {9 z8 g; y% P) e3 Z - );while" ^; ?/ Z" b& Z1 r" W# V" }
- (setq old2 (cdr(assoc 1 ent2)))
5 P* [: y5 ]2 s7 }7 I; X& N - (setq new1 (strcat old1 " " old2)
: p& z0 |& c% ?. l2 Q - ent1
& C; i8 S8 C' f - (subst (cons 1 new1)& P4 u1 h, e4 J0 D
- (assoc 1 ent1)- ^6 V7 _; ^! T) C; ]
- ent1)7 c& t8 B" u! y
- );setq
9 L* G* v; D$ r6 s - (entmod ent1)
5 q! l. T1 d" R2 O$ a# {( M - (entdel ename2)
3 m6 _# c7 q; n) v6 T! Y6 R: ^2 D - (princ): n- S- D* K/ u; @: {4 c& g; Z1 C
- );defun
. w$ g! u; C' H, e* D' q; k" x
1 J ^! i' Q! w2 \4 T" M- ;=====================================================================
' a0 E' L% W- F9 T% g; p
0 u) T& |& H U3 j: r( f5 [- (defun c:nt (/ g1 g2 ss1 olderr nterr l i temp e1 e2 new old dd dc)) g, v7 E) t; A
7 o4 b" I b$ t, U0 G* g% v- (defun nterr (s)1 z/ i$ _& c* w/ l
- (command "_.UCS" "" "_.UNDO" "E")
2 D+ r$ @6 R! e8 z - (setvar "cmdecho" 1)
3 k3 c1 v) [ \+ o - (setvar "blipmode" 0)
, \* U! v# ^ b4 L - (setq *error* olderr)
% b! e$ n# {9 q: D! T* W - (setq g1 nil g2 nil ss1 nil e1 nil e2 nil olderr nil
" U: s0 a9 M J6 t) i+ B) @ - nterr nil temp nil i nil l nil new nil old nil dd nil dc nil)
9 v" u1 i1 [& J# O6 R - (princ)/ Q+ a( ~- n1 `9 y S) u* F0 p2 e
- )
" S2 K2 M8 {! T! J+ T - % A- | Q5 N8 R/ G C8 b8 p3 `- |
- (defun tim_in (dt / p01 p02 ktra)
1 E$ X$ C4 l, n" e( F h. a - (setq p01 (cdr (assoc 10 (entget dt))))
2 X$ i7 Q- l% U# m- \ - (setq p02 (cdr (assoc 11 (entget dt))))6 K0 s1 x& t6 [5 |, e
- (setq ktra T)0 G$ x1 Y5 D* w
- (if (and (> (car p01) (car g1)) (< (car p01) (car g2)) " H7 }, F, Y! ~. l. k
- (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))7 t$ [ r H/ G, m r: U0 m
- (setq ktra nil)& K- X4 a* @0 u5 w2 A
- )
0 n6 F: V) f( a& J0 G) L, b- n7 C0 ~ R - (if (and (> (car p02) (car g1)) (< (car p02) (car g2))
3 q4 U) ~; Z+ n- O* J' \& R l - (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
" Y6 s; u: l5 O3 m: R - (setq ktra nil)
9 {- ~& E! s& D4 |( p - )( K% B O+ y1 L! d! @: N
- ktra. {2 X1 ~6 C" e1 b/ S$ M
- ) f' ]5 _, n+ r* h5 p# S
0 \) H: G; `3 W0 U- (defun timdt (dt1 dt2 / p01 p02)9 M2 W8 @# n' v7 l4 t
- (setq p01 (cdr (assoc 10 (entget dt2))))
/ H- ]# Z( J6 U' a' p0 f - (setq p02 (cdr (assoc 11 (entget dt2))))
5 P% A1 L2 N( `1 `" w2 y - (setvar "ucsicon" 0). [9 i1 S0 b$ @+ V. o! w
- (command "_.UCS" "E" dt1)4 N! k8 x3 z- V; u( ^7 g, Y# }
- (setq p01 (trans p01 0 1))
7 a( r# l) c) |% u: p/ T - (setq p02 (trans p02 0 1))
# h1 X9 U# Z7 Q S1 Z - (command "_.UCS" ""): ?2 u2 p1 x( M [: }; E
- (setvar "ucsicon" 1)+ m" u( x5 P6 _# j6 c% P" _7 B/ ?& u
- (if (and (equal (cadr p01) 0 0.001) (equal (cadr p02) 0 0.001))
2 N; M4 M4 t1 e/ |. D - T
6 p9 {& Y* K0 |7 r - nil
2 m) C+ t5 I* z - )
8 ?/ k' P5 Y# Z5 M: {1 Y* B - )
& P0 w" l! b* T2 A2 N8 c% Q
$ ^/ F3 l" J# a4 ]; X- (defun tim_out (dt / p01 p02 kt)
( {3 l( o* [# t1 v% W - (setq p01 (cdr (assoc 10 (entget dt))))* @' _+ F: I* Z0 e9 C/ i- b& f5 ?
- (setq p02 (cdr (assoc 11 (entget dt))))
" L8 L7 v5 s/ I& F3 T- c - (if (and (> (car p01) (car g1)) (< (car p01) (car g2))
; v; B7 j9 j { - (> (cadr p01) (cadr g1)) (< (cadr p01) (cadr g2)))
# v& {) @+ X) J+ p - (setq kt p02)
2 [, q4 ^9 y, A6 m& ?3 C - )
8 d1 h" I k1 k+ t* G& D) ?/ ` - (if (and (> (car p02) (car g1)) (< (car p02) (car g2)) % {. I) L9 |% ?$ R% T
- (> (cadr p02) (cadr g1)) (< (cadr p02) (cadr g2)))
1 i$ e9 _3 s. }( P" E; t! L" |8 D - (setq kt p01)! R6 c) t, Z; k& m1 Y& S
- )
# Z! @5 c) f1 e! `( p1 _* N - kt
. f# |6 ~/ _- [9 t# C - )
4 |0 ?% m; Y6 }; z2 z - 9 {! v5 R& D v8 Y3 O6 y1 p/ ]$ I0 ~) B
- (setvar "cmdecho" 0)
9 L: h3 U1 i' E7 ?# C4 _ - (setq olderr *error* *error* nterr)
$ ^- E7 F% W# x! o - (command "_.UNDO" "G" "_.UCS" "")
$ h! J% U$ M4 @/ } - (while (null ss1)! m) ]8 B0 h4 J2 J% _" X, i
- (princ "\nChon tuong muon noi..."), B: d4 N1 v n b* a9 v. ]
- (initget 1)
+ b; n# w/ b* P - (setq g1 (getpoint "\n>Goc thu nhat:"))8 O5 U( R0 Z4 Q6 D
- (initget (+ 1 32))
/ V1 E- Y0 t$ b' l, K - (setq g2 (getcorner g1 "\n>Goc thu hai:"))
: M4 ^' A$ d, E! A0 ? - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
1 I3 J5 r' I: D6 x7 d& W0 w$ H - (if (null ss1) (princ "\nKhong tim thay doi tuong!"))
5 I+ l. n2 F1 J5 E- ^7 ~- E - )
% a* n# M) p5 \" U: W, W& ] -
4 W4 Q- V. {# H! \3 G! k$ Z - (setq temp (list (min (car g1) (car g2)) (min (cadr g1) (cadr g2)))1 {" b4 E5 _4 I T( k: m$ G: Z8 @
- g2 (list (max (car g1) (car g2)) (max (cadr g1) (cadr g2)))
[1 G# [$ q% L- ?% [) F( U - g1 temp): [6 w8 \' K B5 z9 k
- (setq ss1 (ssget "w" g1 g2))
. d( j. c, D4 ?# c - (if ss1 (command "_.ERASE" ss1 ""))
9 j6 {$ @" V/ X1 b, g- J - (setq ss1 (ssget "c" g1 g2 '((0 . "LINE"))))
/ X: B% `; o7 R) U - 6 v4 J4 \* _6 H, ~" E7 H% E0 M7 K
- (setvar "blipmode" 0)
; Z' D# F9 `$ L r0 E - (setq i 0 l (sslength ss1))( i9 u1 b$ n; c: S
- (while (< i l)3 y/ @# r* j H/ H: k
- (if (tim_in (ssname ss1 i))
$ m' D% y2 X! H* L4 @1 y$ K - (progn $ U1 J X3 T4 V
- (ssdel (ssname ss1 i) ss1)! w" V' B A- D5 A
- (setq i 0 l (1- l))
# L% k: m, G0 _3 A) j, d - ) ' K5 `2 G7 ^: e# H o
- (setq i (1+ i))8 v. I: M' _% c; V0 a
- )3 p) @: G8 u, A$ `* b8 A3 o) m
- )7 G0 {, p* o z
- (setq l (sslength ss1))
5 M! Z+ `/ q3 g6 v* M5 \( b - (while (>= l 2)9 Z- O) e- X1 p3 u
- (setq e1 (ssname ss1 0))" Y* H, ~3 y% d1 S& I* F; x$ K: ?
- (ssdel e1 ss1)) u' J7 B. ?8 U, e+ t& C
- (setq e2 nil i 0 l (sslength ss1))' X' _) r0 l" c1 [- t
- (while (< i l) 5 U" m: D4 h. x' T7 \ s3 p
- (if (timdt e1 (ssname ss1 i))4 }8 g# M4 `: a" W7 e: A% v: C R
- (progn
% }4 x) l( E7 s( l2 D - (setq e2 (ssname ss1 i))
% f V1 |4 V6 X) \ - (setq dd (tim_out e1))
9 M" n7 x4 p( k7 o) \* w - (setq dc (tim_out e2))
1 O4 p2 X9 z/ ~6 y/ M) Z - )
- x8 _* |% G4 I. W" ~, Y9 [/ P - )
9 m! t1 ~3 Y% y - (setq i (1+ i))5 W8 s9 q5 k% Q1 F
- )
8 U5 {. A; g. h! X - (if e2 (progn
; h& L: q( Q3 G* N! v2 G - (ssdel e2 ss1)
) f0 P7 ?2 `- u- D - (command "_.ERASE" e2 "")$ q. k6 a. b) Z" x
- (setq temp (entget e1))4 Z8 H$ u: S/ [8 V/ w; Y$ F' K6 Z
- (setq old (assoc 10 temp))
4 x& y& `7 }: A2 _6 j9 ^9 N/ H6 [% Q - (setq new (cons 10 dd))
: S5 P' a9 A5 s% g9 K( u/ h, @* ? - (setq temp (subst new old temp))
/ C& n% }% ~" d# E- U6 y - (entmod temp) @0 \7 R4 l7 Z. ?8 T9 F
- (setq temp (entget e1)) n8 f M0 R4 ^
- (setq old (assoc 11 temp))
m6 R) @5 ]$ X) D* { - (setq new (cons 11 dc))' n0 y% N4 m5 ]3 ]8 A; E9 q/ b! X# T
- (setq temp (subst new old temp))
/ ?3 J# ]/ w* A3 v! N( i( E - (entmod temp)
: E; [1 O; R0 T6 ~ X - (redraw e1)
( D6 ~0 P2 O$ s - (setq l (sslength ss1)) A4 |. y+ S' P( e+ q
- )4 y+ `# F4 M5 p# P- Z' e
- )
% ?" W5 j0 }* W8 X: I9 Y) d - )
: k9 O5 @6 G1 F7 v, y% ]
( Z2 {. Y2 y O$ ^0 ~- (command "_.UCS" "" "_.UNDO" "E")
, `8 R( N8 ^) q# }* | - (setvar "cmdecho" 1)7 A" }' Y' m+ M
- (setvar "blipmode" 0)
) f6 x% v! O, z* u* O - (setq *error* olderr)7 F- r5 \% j4 c: D7 O% w* a7 u
- (princ)4 }! h/ d0 u l+ Z$ o+ {" D% N1 Y9 F
- )
A B- p" ]/ a, p6 O6 w; z* u - ;*********************************************************************' z3 Y1 r6 e. V5 g
- (defun ketthuc (). M+ A/ D' m2 Z) u7 {
- (setvar "cmdecho" luuecho)# H$ f3 V8 ]" I7 ?
- (setq *error* luu5 M: @' L. _" S* W" e) o
- luu nil 0 _/ V$ M; D5 |( @
- luuecho nil6 l% [. y2 m/ O$ b& X8 k3 V% m
- );setq
* G7 g; R% ^* c* E9 Q - (princ)7 e) [0 n C* D w, l# x
- ) 6 I* a+ U" A! H7 m
- ;*********************************************************************3 E7 U) a4 l' H6 x8 [& B- h1 v4 d
- (defun modau ()
5 A! e. Q$ H6 E' Z3 R - (setq luu *error3 w2 g0 x+ `) h4 _
- luuecho (getvar "cmdecho")
3 B" c1 I4 l% U# h" R' F" L2 S# V- b - *error (ketthuc)8 L# @+ C9 }- t$ M
- )
3 V q# W* c, f; ? - )
, m7 y2 X+ t2 l' |" V/ g$ v - ;*********************************************************************) {# h6 s* T2 n6 d) K: T& h
- (defun xulytext (text / kytu ma sokt luusokt lui )
0 [: P: i5 x8 _# w! A) v9 K - (setq kytu (substr text (strlen text))
# O% H/ A. @: `* ^ - ma (ascii kytu)6 K3 s' x! I( @
- sokt (read kytu) , {0 _- R: p. a$ i) F' ^' T, {
- lui 13 h7 v5 ^$ t- O) l' B2 b9 g) F/ {
- )" R1 ]3 M n+ z/ P' m: ]; \0 Y, q
- (if (numberp sokt). ]+ v% o$ J9 y6 a8 }& w
- (progn
; }% F8 f/ Y8 ? - (setq luusokt (1+ sokt))
' g {, j9 ~, G$ W$ l% {6 N - (if (and (numberp sokt) + r$ V I" B& I0 `, C
- (> (strlen text) 1)2 O3 V1 }' g. c4 o
- )
: W8 e& ^. H3 ^, b Z ]9 ] - (progn( u( S" [1 [6 N; w9 y
- (setq kytu (substr text (1- (strlen text)))
8 K5 t# d$ r9 X. e L - sokt (read kytu)
R# ~0 c3 i/ x5 E( } - )
) d4 L1 M, h2 A! r. _ - (if (numberp sokt) 2 R/ n3 c0 |6 o
- (setq luusokt (1+ sokt)
) g' C5 d7 h5 |% ~2 q- z* j: c4 j6 q X - lui 25 _3 T2 R/ Q) a
- ! k/ Z" h$ D6 o- d! V& `
- )
x$ [# I/ S2 a6 n3 I3 F - )1 S: O- ` H) F7 H
- );progn $ m& ], }; N: a7 y" J- j0 ~( r
- )) n3 U" f1 a8 L& W, M
- (if (= luusokt 100) (setq luusokt 0))! v$ {( V- X' |3 ?- O
- (setq kytu (rtos luusokt 2 0)4 |3 Z( G) f+ U2 \" g2 F# @1 p9 {
- , k1 G/ j! ~5 C1 l3 F
- text (strcat (substr text 1 (- (strlen text) lui)) kytu)' L/ Y# E ~5 c @- U8 j
- )
$ }* U$ n! b( c - );progn # @3 f$ ?- H1 S9 V
- (if (or (= kytu "z")
' y S- ^9 t# s" l5 L - (= kytu "Z")7 U; b& p) s( Z3 f) a
- )
, u5 p! K( J* f9 c( w1 F - (setq text (strcat text "0")+ Y" g( c0 |; v, J. B2 H% o# h
- textxl "0"" {0 }! R6 y' z2 C$ ]) _8 M
- )
# n/ L" }1 a, u, K* C - (setq ma (1+ ma) X. @% z9 W6 q; ]+ {) x/ M
- text (strcat (substr text 1 (1- (strlen text))) (chr ma))4 B& \" A& g$ [' `8 t2 S# F. a
- )6 f+ l, Y) Q& B7 H, {6 t
- );if2 [' c# h- m% f' V. j
- );if
9 O' B9 F3 H$ y8 Z# M( Z9 h. [" } - )
( J: ]8 G8 N$ S$ F* Z! y9 p( H7 A - ;*********************************************************************
4 k& O" p+ P* ] - (defun doitext(tendoituong / chuoi doituong thoat tam dsach kieu text vitri10 vitri11 dem canle)
% y8 f9 t8 Y: M8 f* f' k - ;Neu doi tuong la text thi tiep tuc3 T$ E, g8 U- _. j8 _. Z
- (setq doituong (entget tendoituong)
- _; E% K% t4 R( h! `/ g - kieu (cdr (assoc 0 doituong))+ M' a0 d( t8 p) O% m6 U( D6 z4 l9 u
- canle (cdr (assoc 72 doituong))
% Z. M8 V" i) `1 B& A - )
?1 |: x$ `& Y1 s9 w! O5 w" K - (if (or (= kieu "TEXT")
* z( k' `4 i! ^ - (= kieu "MTEXT") # L7 e' W: i) c+ u& t% G6 k. ?
- ) ; Y% |& Q8 {+ m k. o
- (progn& e0 C+ R w1 k2 q2 U; ^5 p
- (setq textxl (xulytext textxl). M1 H: D- P1 m* _/ f
- text (cons 1 textxl)
7 I' w7 p" [- o+ P - vitri10 (cdr (assoc 10 doituong))$ p+ |+ g; B- g% n/ `$ b: v# m7 b3 _
- vitri10 (list (+ (car vitri10) (car vitrilech)) (+ (nth 1 vitri10) (nth 1 vitrilech)))
4 q4 s& P, n* c6 u' v; [" i - vitri10 (cons 10 vitri10)
2 ^' S; Y/ ?* E( A& e! N3 N: z, ? - vitri11 (cdr (assoc 11 doituong))
5 R8 q+ y. r, M5 w: Y m - vitri11 (list (+ (car vitri11) (car vitrilech)) (+ (nth 1 vitri11) (nth 1 vitrilech)))! ?* ?$ T/ `# I- [0 F0 T) u
- vitri11 (cons 11 vitri11)
2 y5 o% |! T5 p - dem 0
7 b3 R' T7 J$ r# W) I - dsach nil" t7 r2 C# \* y) }7 j D; O
- )' Z/ M/ A4 b5 D% v
- (foreach tam doituong
0 b' r+ m" H1 [% B/ ? - (cond2 t/ [0 N4 Y7 p' t) J0 i
- ((= (car tam) 1) (setq dsach (append dsach (list text))))! L, d: h# ]! h
- ((= (car tam) 10) (setq dsach (append dsach (list vitri10))))
5 D: M; g; I6 u5 e6 Z% p" c. X - ((= (car tam) 11) (setq dsach (append dsach (list vitri11))))& }/ @9 \ U. I! E4 o* x6 c
- ((setq dsach (append dsach (list tam))))
: R- t$ W& o" U l - )
5 W) I3 o3 |. } - )
3 n4 x" Z# a4 h9 A9 N. b5 f - (entmake dsach)* [+ ~5 I8 o! T- V
- );progn/ |* i7 _) e; y0 G; {
- );if4 z7 P+ P8 l" v r6 Y( w- g
- );% @( @3 H. S7 @4 z/ K
- ;*********************************************************************
0 V& z$ c" e. J# S2 y3 v8 j" j - ;sao doi tuong cu sang vi tri moi6 I2 Q+ Q$ g! _6 P8 r
- 9 e. w6 X- w) B# w
- (defun copy_dt (tendoituong ): s8 G8 k5 O ]& _- s4 h- `1 N Y
- (command "copy" tendoituong "" goc toi ); M+ L' \+ t' n
- );defun
9 ]3 s4 y" q1 r* Q% }1 r) c - 4 @. O) C+ Q% F7 {: [( t* Q2 U* F
- ;*********************************************************************9 H- J8 M% m9 g+ `
- & `$ s% ]0 z$ v, d
- (defun c:ct ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
8 u/ F" d: |0 v w! m& e0 P% O' p - ; Khoi dau cua chuong trinh
8 j. Y6 o4 N, \5 T& F( M; \; M - (princ "\nCopy Inteligent...\n")1 p; ?1 R9 {6 O
- (setq luuecho (getvar "cmdecho")
) k: l$ V$ _# V1 G8 W - luu *error*) k( j; m2 H4 }- F$ C4 ]6 P! z
- *error* ketthuc
9 m6 Z- \6 p( ~+ y; L/ b4 @6 H - cumdt (ssget)
?$ r3 f2 d1 C6 |6 ]% r' d - dodai (sslength cumdt)$ c) Q- ?! r7 C H ?; S* V+ L( @
- goc (getpoint "\nSelect base point:")
* T3 E/ J) k G5 s$ b2 ^4 f - thoat nil8 a6 n5 ~ `0 P
- dem 0& V1 g7 }1 B4 ~6 W3 U/ S
- textxl nil
% b; I! N% M! \7 R- F$ X - );. p/ ^* A7 q7 C; D6 L4 F
- (setvar "cmdecho" 0)/ X$ t1 ]9 [9 ~- M; A# N
- ; Loc ra duoc ong text de xu ly: Z* j$ j( P) w) m- ~
- (while (and (= thoat nil)
; }& r" S& y+ l; M& b - (< dem dodai): y! C5 N U y
- )& I( F# v# X0 f
- (setq ten (ssname cumdt dem)
3 E) D! `' Q, ^ - dem (1+ dem)
1 x9 K& U9 w' ~9 T2 n5 R) e - doituong (entget ten)& G5 X- s$ J6 b
- kieu (cdr (assoc 0 doituong))
$ o5 H5 ^+ e: P4 Q- _! T - )
5 i t3 s0 ~3 e A+ s, k6 O -
# X& @7 W, x1 f8 M( C3 P - (if (or (= kieu "TEXT")
' v) O2 x) B" |' j( V. ? - (= kieu "MTEXT") 8 Z9 x# C1 f! B) P3 V
- )9 F7 o- s3 ^) v! f4 E w, k
- (setq thoat T
% W3 Q" y4 P( I: o. {( Z - textxl (cdr (assoc 1 doituong))
+ A7 q d. p$ a3 Q - )
% U& k/ \8 I( U* O% q - )' ~2 ^" ]& d6 s# j4 Z; \3 R Z
- );8 S! e, x4 v' z9 ?! s7 F
- (while T
# Z$ H& d) y' Q" T# l) B6 G - (setq toi (getpoint "\nSelect next point: " goc)
e' d0 @% O2 l* y3 m& E+ k I; S$ C - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc))). j& d2 h' Y0 `1 I
- dem 0
3 @6 }; O4 x0 U6 M - )
8 t6 k6 v# |7 W) | - (while (< dem dodai)* v, h3 ]/ ?6 `% E5 Q' b+ q
- (setq ten (ssname cumdt dem)& T! w. t+ x% Q! \9 \! z
- dem (1+ dem)3 _0 a" |) [# {9 Q1 q; D
- doituong (entget ten)* P7 Y' \- \- T& y/ a
- kieu (cdr (assoc 0 doituong)) ) N8 x$ E5 R3 s1 Y
- )
0 s( m9 k7 ]3 y& e4 @* O) ` - + i u' z& e& t6 K
- (if (or (= kieu "TEXT")2 U- ]8 x1 t9 z, z# U; G
- (= kieu "MTEXT")
# ~( X) e# `6 t8 z/ o$ v, _ - )9 ^8 M s6 v4 m* z8 ~$ l3 Q1 J
- (doitext ten)
! K, Q) u, o$ O0 T7 d/ R0 { - (copy_dt ten) _0 V2 r% d+ l0 v& U9 s: J6 l
- 7 {1 ]: e" A, C' C: K
- );if
1 [2 z* g {8 J* c9 K" T - )
, C0 O4 j. l/ e5 U5 T - );while5 `+ i+ W; `% Y$ C
- (ketthuc)
7 W& d8 s; L" f7 P- L { - );defun
; r( |# d' |0 k9 m - (princ "Type \"DG\" to start")+ y( ?! n' C( v: b, Q$ Q0 P) C
- ;Note: bien toan cuc: textxl vitrilech3 a) t. d& m4 u# P. l' m
/ {- g4 {' j8 \! k1 U- ;=====================================================================
$ O2 u- q5 C, f; ]1 {. o - ;;; PLJOINFUZZ.LSP
' x; Y3 N! F/ n - ;;; Joins lines, arcs and polylines using a fuzz distance
) Y& K1 J4 a8 t - ;;; If only one object is selected it tries to join to all objects that are possible# \, P; T" [% K# F. @5 W C4 |: _
- ;;; By Jimmy Bergmark
' [6 p9 n$ H6 ~7 K - ;;; Copyright (C) 2003-2004 JTB World, All Rights Reserved
# f" j5 {. {8 M1 P. I6 d" F) T3 M - ;;; Website: www.jtbworld.com3 ]# |5 N6 j& g
- ;;; E-mail: info@jtbworld.com
0 B6 V; w* }! F - ;;; Tested on AutoCAD 2002,2004 and 20056 Q. e, ]% P5 r- z% L
- ;;; Latest revision made 2004-11-119 L7 G. K7 O* \0 h' C7 t, ?: Q( _; c
- ;;; Minor code cosmetic change made 2004-11-13
g1 y7 Q7 J7 r! {3 K. J$ } - ;;; Bug corrected 2004-12-23
" T1 r: Q) w6 q" h: R3 b: S5 U
' m, @/ Q5 I: s4 n0 D2 J! \! E# M |- (defun c:jf () (c:pljoinfuzz)) ; this line can be commented out if there is an existing command called jf
7 u2 D4 I" E+ G: `- f/ r0 e - (defun c:pljoinfuzz (/ ss1 entLine objType oldcmdecho oldpeditaccept fuzz okObjects)# [+ z" H% y2 |1 H- U
- (setq oldcmdecho (getvar "cmdecho"))
. N; c% e* S2 F) i+ c1 Q - (setq oldpeditaccept (getvar "PEDITACCEPT"))
8 }* a. z9 _3 _) j. s# L& t - (setvar "cmdecho" 0)+ p1 u6 a7 l4 u, P" g+ O( m
- (setq A2k4 (>= (substr (getvar "ACADVER") 1 2) "16"))
% |) b c5 W: _4 |! e& H: }2 W - (if A2k4 (setvar "PEDITACCEPT" 0))' C, T) T" |' z6 _6 T5 X, f% P2 }
- (setq okObjects '((0 . "LINE,ARC,POLYLINE,LWPOLYLINE")))# e5 D) b7 A, w/ l
- (princ "\nSelect object to join: ")5 u2 m, h, i4 M* g, Y e& R
- (setq ss1 (ssget okObjects))
6 t) o4 `; G. k6 Z9 `0 b+ p& Y - (setq fuzz (getdist "\nFuzz distance <0>: "))* R# W7 t* B# Z' H$ r* X
- (if (= fuzz nil) (setq fuzz 0))
y& B* h6 I! G5 m2 { - (if (/= ss1 nil), q; F# O) q2 L8 Z! |! S+ j+ A
- (progn
3 |0 |' Z2 _$ M+ O+ z! u/ f' N - (setq objType (cdr (assoc 0 (entget (setq entLine (ssname ss1 0))))))
* e; w/ @( u: B - (if (= (sslength ss1) 1) (setq ss1 (ssget "X" okObjects)))' O, m+ Y) P# F2 H
- (if (member objType '("LINE" "ARC"))
3 K0 T: c4 B3 Y8 a - (command "_.pedit" "_M" ss1 "" "_Y" "_J" "_J" "_B" fuzz "")) o' [9 W- C2 ]" w |
- (command "_.pedit" "_M" ss1 "" "_J" "_J" "_B" fuzz "")
3 m9 y' w5 `: B& \ - )
3 W+ ]( x, M) _! K* B& w - )$ Z6 `4 i' i+ @8 t) y
- )9 Q$ [- ^/ t6 I( R5 I
- (setvar "cmdecho" oldcmdecho)3 c/ T/ d; s# w% w: X
- (if A2k4 (setvar "PEDITACCEPT" oldpeditaccept))1 _/ o0 _6 Q/ X& q3 k) i
- (princ) i6 K0 G6 U- v, W+ g# ?
- )
1 M* |1 j/ {8 J) [5 Y2 s0 G
8 ]1 V) u9 j& q( F6 X6 K- ;===========================VE CAO TRINH===========================
# I; C+ _3 L+ @/ Q- W5 l# f& \) W' c
5 _) D* N" f0 A- (DEFUN C:Cotcao (/ CMD PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 NPI TX DX DY TL OSM OLL
' ? w' G- k0 V4 O$ ]2 D - CRST RSIZE TSIZE STR PRMT FCH NBC OLDERR)
4 k( h# c, q% d& q - (SETQ OLDERR *error*
, I" u2 ^+ S8 o - *error* loisb)
: d; H/ Y2 S5 n( Y# x$ [$ D$ a - (command "layer" "m" "dim" "c" "" """")" d7 t, s$ i! M2 @
- (SETQ CMD (GETVAR "CMDECHO"))
+ p) a& [( U0 U* `5 L+ O7 j( A8 v - (SETQ NBC (GETVAR "CLAYER"))& Y ?+ L) u% ?" E Z" R! J
- (SETQ OSM (GETVAR "OSMODE"))* }1 s/ V. a0 g5 H/ g6 Z/ y
- (SETVAR "CMDECHO" 0)
6 \4 h$ {) M g: c8 g; j- o5 z - (SETQ PT1 (GETPOINT "\nDiem cao trinh:"))2 a# [5 A2 L9 |' _# _' w) d
- (SETQ TX (GETSTRING "\nCao trinh:"))
3 A. j7 H$ l! ?0 k' l) x( M - (SETQ FCH (SUBSTR TX 1 1))
) }1 N2 c3 i4 Z3 w$ \ - (IF (= FCH "@") (SETQ TX (STRCAT "%%P" (SUBSTR TX 2 (- (STRLEN TX) 1)))))
% X! o5 X- e9 f" a - (SETQ CRST (GETVAR "TEXTSTYLE"))
' a+ v. ?, o$ C I3 m) F% E7 y - (SETQ RSIZE (CDR (ASSOC 40 (TBLSEARCH "STYLE" CRST))))
8 H2 T, ]' [6 X/ O# z7 T - (SETQ TSIZE (GETVAR "TEXTSIZE"))
% u0 ~5 A' ~/ ]' i1 o6 }" b - (SETQ STR (RTOS TSIZE 2))
/ O e$ S; M& a+ I - (SETQ PRMT (STRCAT "\nText height <" STR ">:"))+ {; L1 P% `/ T2 [
- (IF (= RSIZE 0)
/ _( U& V5 {4 R6 X9 j* S4 V0 ` - (PROGN
+ X( N) y: m/ j, {: w. P3 \ - (INITGET 4)2 l' ~; J9 r, U$ S& Z! {5 N( n+ L$ L
- (SETQ TSIZE (GETREAL PRMT))
7 _( A# i7 b z5 e, T4 E5 v, v - (IF (= TSIZE NIL) (SETQ TSIZE (GETVAR "TEXTSIZE"))5 Q4 N: m: e: u- O
- (SETVAR "TEXTSIZE" TSIZE))3 L7 ?; T. ~6 m; y6 M: R
- )
; j. A+ o$ O8 {0 \7 u: p1 H - )+ { G# u2 F: X# t# Z: W- W- f: Q
- (PRINC), O! N! U# a) N! }8 z% q
- (SETQ TL (/ (GETVAR "TEXTSIZE") 2))
" Q+ p' e0 F$ g( r' x - (SETVAR "OSMODE" 0)
! i! J2 a4 x* q/ t- p. T }6 ^ - (SETQ DX (CAAR (CDR (TEXTBOX (LIST (CONS 1 TX))))))
; _& E9 x* O, _ - (SETQ NPI (/ PI 2))
& b2 z* C# l- \8 [; S, `0 \+ g: G - (SETQ PT4 (POLAR PT1 NPI (* 1 TL)))% u; \* Y+ O% [) P7 `- }, V
- (SETQ PT2 (POLAR PT4 PI (* 2 TL)))
6 m3 H2 k9 q/ M/ ~3 Z j - (SETQ PT3 (POLAR PT4 0 (* 2 TL)))
5 h) ?! d. o7 L/ ^- `. G: A& e - (SETQ PT5 (POLAR PT4 NPI (* 5 TL)))3 E6 |* C% }/ Z* o7 u. D7 P
- (SETQ PT6 (POLAR PT2 NPI TL)); C& B1 H) S1 Z1 [* s2 h( \2 m
- (SETQ PT7 (POLAR PT6 0 (+ (* 3.7 TL) DX)))' r1 O# I4 M4 c+ F1 M$ e$ h
- (SETQ PT8 (POLAR PT6 NPI (* 1 TL)))
& H! g; T# r% Y1 J! l - (SETQ PT8 (POLAR PT8 0 (* 2.5 TL)))) r# `( T k1 K: z
- (SETQ PT9 (POLAR PT1 pi (* 2 TL))) v3 G- f2 r& B5 P4 @1 B( [
- (SETQ PT10 (POLAR PT1 0 (* 2 TL)))
' H" R3 \: L; e& K9 U% v) d - (COMMAND "COLOR" "7" "")1 [" n1 W+ n/ ?2 I4 p! }
- (COMMAND "STYLE" "COTES" "Verdana" "" "" "" "" "")* j0 c4 r+ U6 c) N3 L+ s% ^
- (IF (= RSIZE 0)(COMMAND "TEXT" PT8 TSIZE 0 tX) (COMMAND "TEXT" PT8 0 TX))7 @" t& }; d# y& A1 M9 V
- (COMMAND "COLOR" "BYLAYER" "")
# R: \6 v& O! I* x2 r! {1 x3 N - (COMMAND "SOLID" PT1 PT2 PT4 "" "" "pLINE" PT1 pt3 pt2 "")8 h! l1 i$ p! e0 k$ ~
- (COMMAND "COLOR" "BYLAYER" "")
F& x/ L$ I! }9 Z7 O* e; ~ - (COMMAND "pLINE" PT1 PT5 "" "pLINE" PT6 PT7 "" "pLINE" pt9 pt10"")
5 K; k. M/ D4 C+ k$ ?, X - (SETVAR "CLAYER" "0")7 R/ p0 Q8 {; S8 E+ ?- }* Y
- (command "ddedit" pause)
5 S; F! r! l0 d/ o5 ~4 e - (COMMAND "COLOR" "BYLAYER" "")" f4 h M1 W, X+ O
- (SETVAR "CMDECHO" CMD)
/ }; I. f; X3 H* K. F9 u' M6 I. ^ - (SETVAR "CLAYER" NBC)
9 @. `) v2 p4 K y) n - (SETVAR "OSMODE" OSM)
0 p3 Z: s9 X; O, `* g: g$ x - (PRINC)$ `( a) W* J7 {( A+ t/ Q' M
- )
: [$ M, N6 T6 \2 y" q# x - / I7 d& J, D+ z% u- W, T$ D' K* r
- ;;; =========================== VE NET CAT CHEO (GC) =============================& l( f$ n1 L+ r
- ( i7 J' j: [! J7 N+ ^& _' y
- (Defun c:G1(/ p1 p2 p3 p4 p5 p6 p11 p12 l ang), z6 T+ r* b' G' e$ [
- (setq x (getvar "osmode"))
9 M9 S* ?" `0 U3 ] - (setq p1 (getpoint "First point : ")
' G1 {8 P2 i& d- g+ C' b4 Q" J# [3 f - p2 (getpoint p1 "Second point : "))
9 c2 `: g& Z, T - (setq l (distance p1 p2))
' P; h: j% z2 [' @7 S5 t' u - (setq p11 (polar p1 (angle p2 p1) (/ l 5))
" [/ s2 }4 s' I6 O - p12 (polar p2 (angle p1 p2) (/ l 5)))2 r) O+ G) c1 n! v, }
- (setq ang (angle p1 p2))3 W1 K0 a0 B! X5 o5 b, ^
- (setq p3 (polar p1 ang (/ l 2.5)) p) m5 s2 I5 p6 j- r& ^1 D
- p4 (polar p3 (+ (/ pi 2) ang) (/ l 5))
" r4 i; ^! e" ]2 @& |) e - p5 (polar p3 ang (/ l 5))6 W0 @$ x6 W, F5 B
- p6 (polar p5 (- ang (/ pi 2)) (/ l 5)))6 o9 |5 |1 ? W+ K* V, U" U& L
- (setvar "osmode" 0)
- _% _: u9 \1 O; R - (command "pline" p11 p3 p4 p6 p5 p12 "")% L% R4 Y, d- P3 U* D& [" w
- (setvar "osmode" x)& I( `" L+ C1 q L
- )7 {3 m" h; |/ u
- ;----------------------------------------------------------------------------------- R% M' a2 r' v
- (Defun C:G2 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6- a/ G* m/ V0 t3 K9 x
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))" K3 J0 } w! h+ i! [ j
- (setq ps1 (getpoint "\Chon diem thu nhat: "))
4 v" ?6 t0 ?# a; ] - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))' P. S0 D2 v+ y, v6 N) T4 @
- (setq sb 50.0 sh 200.0 se 20.0)
. e! l) D9 L, d1 {/ j - (setq ang (angle ps1 ps2))7 y% l# }0 q. Z: ]" k
- (setq pf1 (polar ps1 ang (- 0.0 se)))
' A/ k8 a9 K- T8 K) ~ Y$ F9 D - (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
7 a7 [8 e6 o: g) G: K - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))9 N3 \. k- l* t3 x( N0 n
- (setq pf5 (polar pf2 ang sb))/ d" [, A5 t1 r3 J
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))% g# D8 T; w% o6 S: z, L) c
- (setq pf6 (polar ps2 ang se))
2 G* y4 q1 v0 ^ - (setvar "OSMODE" 0)# k) _* g! l% U1 r1 w( `
- (setvar "BLIPMODE" 0)) L% Z; U6 s5 y4 e0 U) c2 b3 b
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")+ r/ U6 W3 n; W3 X6 P
- (setvar "OSMODE" 703)
& Z6 O/ u6 j" f. z5 m4 ]9 ~& C - (princ) )
$ T+ u, [) Y9 G5 Q - ;----------------------------------------------------------------------------------
. ~* d- O3 Y3 |* ? - (Defun C:G3 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6! j- ]0 U- S0 g; n
- pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))
; g: d7 F2 b$ K& W' G; Z - (setq ps1 (getpoint "\Chon diem thu nhat: "))
3 e: y% P, j7 P9 d4 }& t - (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))
+ j6 \1 L0 j9 r+ t6 C - (setq sb 100.0 sh 150.0 se 20.0)
* {+ X/ Q6 @: O- z# ?' w7 l6 J: N1 @ - (setq ang (angle ps1 ps2))
" ?+ {! t4 |9 H+ L8 X# x/ `1 E - (setq pf1 (polar ps1 ang (- 0.0 se))). O4 Z+ ?! y$ W# r- S7 b# G
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
0 j! h2 b* K6 z: w2 Q3 |6 _ - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0))). E; n2 [) r' l2 E7 |
- (setq pf5 (polar pf2 ang sb)). @( _" @, v% Y0 I' L
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
% p" J+ B3 @2 y - (setq pf6 (polar ps2 ang se))
7 W4 n: @, T5 S+ Q - (setvar "OSMODE" 0)) f2 f3 v- t' J& f$ e
- (setvar "BLIPMODE" 0)
3 d3 s* f8 b9 t: y - (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
2 g2 a: W* u$ Y8 L) @: |& H - (setvar "OSMODE" 703)( ]" h1 s7 g+ {+ G0 u6 {% ^* g
- (princ) )
$ E& R) m. f* K8 K; _0 T( c, W - ;----------------------------------------------------------------------------------7 a: H3 G# w* U! T R h9 L5 u2 r5 d' O
- (Defun C:G4 (/ ps1 ps2 pf1 pf2 pf3 pf4 pf5 pf6
. _2 d# V3 e0 P, O - pf7 pf8 sb sh se ang old_osmode); (setq old_osmode (getvar "OSMODE"))' C# Z+ M" w3 b' D! j; z
- (setq ps1 (getpoint "\Chon diem thu nhat: "))3 u9 O* L+ p4 _
- (setq ps2 (getpoint ps1 "\nChon diem tiep theo: "))4 z# [/ e; \+ ^. Q# I; a4 o4 Q9 B
- (setq sb 100.0 sh 250.0 se 20.0)& J6 ?: w- G5 _; d
- (setq ang (angle ps1 ps2))
0 D$ ^- ^+ G& e. W% X - (setq pf1 (polar ps1 ang (- 0.0 se))) ~1 x9 Z6 }, T6 o& O7 _
- (setq pf2 (polar ps1 ang (/ (- (distance ps1 ps2) sb) 2.0) ))
6 M6 v3 m1 w( g - (setq pf3 (polar pf2 (+ ang (/ pi 2)) (/ sh 2.0)))8 W9 {* _2 r4 ?& Q) C+ W
- (setq pf5 (polar pf2 ang sb)); P. M& d! F' H) d" y
- (setq pf4 (polar pf5 (- ang (/ pi 2)) (/ sh 2.0)))
8 I E3 g4 s! P9 @% o7 e - (setq pf6 (polar ps2 ang se))
! o3 U$ m/ {8 B; u - (setvar "OSMODE" 0)
' B4 h$ h' W; p2 Z - (setvar "BLIPMODE" 0)3 D. j% G) o2 N7 p7 [: V0 \6 O% e
- (command "PLINE" pf1 pf2 pf3 pf4 pf5 pf6 "")
, @' Y W9 Z) |% _5 m - (setvar "OSMODE" 703)
2 @& n9 T- G, A) M2 B) Z4 k - (princ) )6 \6 m! [& P) R9 v" n8 [
- & P9 H% Y" b3 I7 ]: r. w/ F
- ;==================================================================================
$ V' M5 K) E3 I - (defun c:ang (/ ent pt1 pt2 ang)+ W- \# P/ ^; G& I( H- K
- (setq cmd (getvar "cmdecho"))+ |0 d* ?0 D7 F; O
- (setvar "cmdecho" 1)3 t% [+ ?- X! B, A+ H
- (prompt (strcat"\nThay doi truc toa do theo duong thang chon truoc"))
' y) p' q. O' G+ O6 `; a - (setq ent (entsel "\nChon duong thang:"))
! x% g5 t5 ^; F - (if ent
9 {' |1 O0 Y: L) {( k) Y - (progn
( U2 D' M t+ T6 ?/ n* ^; g - (setq ent (entget (car ent)))" d4 g! x( n( D% n/ G
- (setq pt1 (cdr (assoc 10 ent)))0 ]7 W1 m2 X+ G
- (setq pt2 (cdr (assoc 11 ent)))
+ N, d( a1 |) d; I; X5 Z; N - (setq ang (angle pt1 pt2))
- I& i0 _. o$ `& w3 I4 }' Z - (setq ang (/ (* ang 180.0) pi))
; k; Y5 s% X2 B, ~4 a: O6 M, l - (setvar "cmdecho" 0)% E* f, M$ c& I
- (command "setvar" "snapang" ang)" c4 l4 C* t; G; `* P
- (princ "\nGoc cua truc toa do moi : ")
0 S3 O2 S1 e6 k) ^) ]+ e1 W - (princ ang)
7 E/ z1 V: Z2 s( U, }) O; G( J - )
. ?* V1 A4 k! W* x6 C - ). n5 P, e: V* ^1 R" t3 |9 J: P
- (setvar "cmdecho" cmd)1 H+ e2 |; q( L( G
- (princ)
" W! K; O5 l/ E - )
1 M w! Y9 d' x7 U1 | - ;==================================================================================
3 R) ?) O* K2 B - ;============================== KY HIEU DOI XUNG ==============================
Z n) s. |$ }; {* k3 Q) B - ;==================================================================================
/ ]( y; d' d# `; l4 O$ r
; J6 A* K3 U; I- (DEFUN C:DX (/ CMD OSM OLDERR PT1 PT2 PT3 PT4 PT5 PT6 PT7 PT8 PT9
0 b- N# e" O! Z - SZ G45 G135 G90 G180 SS loi)
4 k- ^" i3 g) U! F - (defun loi (s)% _: s* i2 X2 E
- (if (= s "Function cancelled")
2 X* A* S- C) L: x - (princ)
. O' W) o$ I" L: ?, a - (princ (strcat "Error:" s)), U) @9 }; l) a, G* W
- )
3 z/ t% n/ G+ J- _: F: q0 p9 V - (SETVAR "CMDECHO" CMD)
# E, }8 O1 }: E& l7 v: ~; M - (SETVAR "OSMODE" OSM)7 B" W Z4 P" ^8 V
- (SETQ *error* OLDERR)( F. _2 k/ w" _6 M$ o* v" i+ a
- (PRINC)
& X, Y1 C2 H7 e6 Q - ). P2 f" g9 f, C) v
- (SETQ CMD (GETVAR "CMDECHO"))# l3 d& k3 h s% m3 {! Q! z% J
- (SETQ OSM (GETVAR "OSMODE"))6 b# O1 |' Y$ f4 [1 _$ }# t
- (SETVAR "CMDECHO" 0)) F5 w0 {) R0 ^7 _/ j
- (SETQ OLDERR *error*$ i" N; J& ]% e1 N T1 E% ]: S
- *error* loi)+ T: W+ R* u8 F/ ?2 s
- (SETQ SZ (GETREAL "Size <1>:"))
^4 X! O) J/ U - (IF (= SZ nil) (SETQ SZ 100))
: V3 @) R9 ^ D h% l) u - (SETQ G45 (/ PI 4))
9 e% p- \( ?9 b. |. ^. O3 F2 o - (SETQ G135 (* 3 (/ PI 4)))
$ P) ^) A+ H6 @4 `9 h" i$ p# K - (SETQ G90 (- G45 (/ PI 2)))
9 _! `0 V. H* t8 q4 I3 F% x - (SETQ G180 (+ G135 (/ PI 2)))% l* D8 v0 _+ P& [
- (SETQ PT1 (GETPOINT "\nDiem doi xung:"))% X5 g2 j$ w, l
- (SETVAR "OSMODE" 0)
1 B" j9 E4 u; A0 }4 ]+ v2 `: W( [" c - (SETQ PT2 (POLAR PT1 G45 (* 2 SZ)))% d( r6 k6 ]1 `3 `5 z) \% ^
- (SETQ PT3 (POLAR PT2 G90 (* 2 SZ)))
! T; m$ t, G3 `& V t - (SETQ PT4 (POLAR PT1 G45 (* 1 SZ)))$ v1 J' w4 f7 K! e- C- ]: P
- (SETQ PT5 (POLAR PT1 G135 (* 2 SZ)))
+ R+ D" M0 G/ u8 v% R, r; L3 M' Y - (SETQ PT6 (POLAR PT5 G180 (* 2 SZ)))
- ]" U x8 u- c; P2 [- \ - (SETQ PT7 (POLAR PT1 G135 (* 1 SZ))); ^: d6 l$ y; b+ q5 X- K
- (SETQ PT8 (POLAR PT1 G45 (* -0.7 SZ)))
* x' `3 w' w( k7 r) @5 X - (SETQ PT9 (POLAR PT1 G135 (* -0.7 SZ)))
2 {' |3 O+ L1 @* i# f9 G) a - (PRINC "\nGoc quay:")' a3 P% t( h! p8 P
- (SETQ SS (SSADD))
& c1 |4 B1 s. C7 B K) g - (command "layer" "m" "Dim" "c" "" """"): ]5 y( s) k# X6 v. G B' K
- (COMMAND "COLOR" "1" "")# L) y" v% c( S/ d- T* D# p9 t7 Q
- (COMMAND "LINE" PT8 PT2 "")
3 p- s- g' r4 D" e8 ?) M8 X - (SETQ SS (SSADD (ENTLAST) SS))
& D5 J. e' a$ l7 n6 E6 B$ C - (COMMAND "LINE" PT9 PT5 "")" S3 l5 E$ M( i% |$ S" K+ ~
- (SETQ SS (SSADD (ENTLAST) SS))
" G6 O4 g2 S# L ]; C/ D3 ]# Q) [ - (COMMAND "COLOR" "1" "")
0 c' C- b+ A' ~6 q( n2 h; T - (COMMAND "SOLID" PT2 PT3 PT4 "" "")8 F, H: l- f6 @( }0 ?6 O: R
- (SETQ SS (SSADD (ENTLAST) SS))" @- M7 e1 G) n! H8 ?$ p
- (COMMAND "SOLID" PT5 PT6 PT7 "" "")
+ I& l. Z- n% v! S9 ~$ o - (SETQ SS (SSADD (ENTLAST) SS))
/ q) \8 w) K+ H( D/ ^8 U - (COMMAND "ROTATE" SS "" PT1 PAUSE)2 M+ @8 X) R) Q: y
- (COMMAND "COLOR" "BYLAYER" "")
, j1 d$ ?! x+ c K9 s) y# t9 Q. q - (SETVAR "CMDECHO" CMD)) P6 V8 u) I9 D y3 y
- (SETVAR "OSMODE" OSM)
7 n# z) b; `3 _2 E$ @! r - (SETQ *error* OLDERR)
( `6 y+ ?2 S R5 T. ?* {* i9 w - (PRINC) r/ [9 C: E" a& K$ T% L) o
- )3 s" j/ D2 e9 A# ^
- |# f1 j. s* y( h5 b
- ;==================================================================================% ]+ A3 d$ g; Z3 ~/ {
- ;================================= KY HIEU TRUC ===============================6 U) s2 q3 A; d
- ;==================================================================================
( V# }+ h$ v$ z
) F: }: K2 D& x- (defun C:vetruc (); s0 @8 ?6 _- m4 k# M- p6 ^7 i7 h
- (setq bk (getvar "USERR3"))% Q0 ~% ^2 ?% x; P8 d% m8 P0 l
- (if (= bk 0)
& Y7 ?& \) k0 {: w) f! B - (progn, o0 U$ m! Q! }; I7 E( q: T
- (setq cont "1"); s$ @6 }% ?, Q+ ^
- (setvar "USERR3" 1)$ ]' A6 e) C! \
- )+ h# e( r2 i- x* w
- (setq cont (rtos bk))
( c) n. n' d6 p - )* w- V1 |/ _% q& n
- (setq pt1 (getpoint "\n Nhap diem dat:")). @( k! \1 ?+ z% A$ }3 c# _# m4 w
- (command "layer" "m" "Dim" "c" "" """")
9 f5 s+ y3 ?7 o - (command "osnap" "")
2 h) H& a) z! y' V: | - (COMMAND "COLOR" "7" "")
1 V2 S2 l7 B! K: P - (command "circle" pt1 150 "")
* g% ?& q: J' Z8 u - (setq pt2 (polar pt1 0 150))8 X3 l4 j* O2 a! p1 {
- (setq pt3 (polar pt1 (/ pi 1) 150))7 C, H; P) B z$ d. \+ w
- (setq pt4 (polar pt1 0 300))
& Q& W( O1 K% C: v - (setq pt5 (polar pt1 (/ pi 1) 300))! o! [- X* _* t/ x
- (setq pt6 (polar pt1 (- 0 (/ pi 2)) 150))
5 F" X1 D1 }6 i3 p& F - (setq pt7 (polar pt1 (- 0 (/ pi 2)) 300))+ c8 \6 H+ t3 L2 c! N* m+ F
- (setq pt8 (polar pt1 (/ pi 2) 150))
+ O' {6 O* R& B" ?7 ?5 ` - (setq pt9 (polar pt1 (/ pi 2) 300)); q* O6 n6 u! D4 f$ @7 D, {
- (setq pt10 (polar pt1 0 150)). k, [ I3 x; p: H+ v! m: Y: e( m
- (setq pt11 (polar pt1 (/ pi 4) 150))
5 H& W" U3 H9 @+ Z9 Y - (COMMAND "COLOR" "BYLAYER" "")
% u# C' m2 W; }: d' c- v - (command "line" pt2 pt4 "")
: f7 H7 S+ l3 M( _* r0 u - (command "line" pt6 pt7 "")1 T0 K: Q/ z, d+ q; V
- (command "line" pt3 pt5 "")
; z; e$ P; L7 h: _) c6 S1 ? - (command "line" pt8 pt9 "")
. ~+ |. w7 U5 n$ e8 u" Q - (setq dk (strcat "\n Size:<"cont">"))8 Y1 y4 z# O! u4 C3 S% h
- (setq bk (getreal dk))
" F, }7 ] `4 Y - (if (= bk nil)* H1 ^0 u+ x2 e: [( |+ D
- (progn
! X" u$ C o* U1 G, E - (setq bk (getvar "USERR3"))! ~/ u! ?* |- H# w9 u/ E
- )) ?/ M- d7 i, Q! \% }1 k& O
- (setvar "USERR3" bk)# D+ \% P7 d# E! `/ J, n
- )" C/ `0 G$ f+ f2 w1 V c
- (command "scale" pt4 pt5 pt7 pt9 pt11"" pt1 bk"")
1 F; Q# P* D$ V4 l - (COMMAND "COLOR" "7" "")$ _" W8 a! q( w4 X+ c$ C! J# ~
- (COMMAND "STYLE" "Truc" "impact" "" "" "" "" ""); E( S! k0 u& o) C, n) G
- (command "text" "j" "mc" pt1 (* 150 bk) pt10 "A" "")
5 B a3 J* O0 {( f, Z1 m3 I - (COMMAND "COLOR" "BYLAYER" "")6 C* `: W& v x( v( A8 z
- ) f7 c# i. D: n% I) ~' j
+ `2 b: q- K3 N9 y5 Y+ E- ;=====================================================================4 d& j) T: N% S+ z4 c
- ;CA - Reverses the case of text. (Upper to Lower and Lower to Upper.)2 f# a& N `4 H- P( T4 D; k
- ;
* B+ q9 @; E" ]# p$ f% v: T* u- e - ;Jeffery P Sanders3 A9 v& g% @. f6 n0 t% |1 z
- ;
7 ?! b5 O4 E, u& V; a - (defun C:CA(/ en enlist tx newtx cnt tp asc note)
" W1 j1 D, a8 ~, z9 y4 x% z - (setvar "cmdecho" 0)
! e7 r! X, z# i$ J( r; I. X6 ` - (if(setq en(entsel))8 T: f2 v( y5 B
- (progn0 n: ]/ ?# @7 ?' p
- (setq enlist(entget(car en)))
% }5 Q+ E. N. E; |: u; m - (if(= "TEXT"(cdr(assoc 0 enlist)))$ m. W! Y( p: W* M
- (progn$ r' M: x0 Y% [6 _) T
- (setq tx(cdr(assoc 1 enlist))! n& k, Y5 O# Y6 z8 _2 C% b) r
- newtx "" cnt(strlen tx); n0 e; q6 [- Y' k& ?* y1 a
- note "\n...CASE Reversed. \n "9 f c5 b, z% l6 l( e
- )* F+ r( d6 a; T9 q; M
- (while (> cnt 0)
1 g- a! a0 n- W' G) h8 H& y - (setq tp(substr tx cnt 1))
' H8 P$ t9 d0 ~2 P5 w8 } - (setq asc(ascii tp))% t, @' @$ l1 N9 {
- (if (> asc 96). S( T+ k# `% ?
- (setq tp(strcase tp))8 d" J( ~$ C8 F, } l' x
- (setq tp(strcase tp T))
: z2 `* q$ Z) w3 U - )6 n" _% u% p0 O& B" A' J. X+ c( Q
- (setq newtx(strcat tp newtx))
5 Z8 v# g+ m! u+ V - (setq cnt(- cnt 1))- b# M2 Y5 S$ u$ S8 i0 }: W
- )
! e/ |, ?! a" T, ^& v7 ^ - (setq enlist(subst(cons 1 newtx)(assoc 1 enlist)enlist))4 Q; D8 l- Y# s2 U0 P
- (entmod enlist): U" g8 s: G w1 t. Z1 @
- )
- G$ X0 `: S4 ^ - (setq note "\n....Text Only Please. \n "), V7 _5 r4 L9 [$ B# P9 n. U
- )5 S: A7 v3 Q4 ?; p
- )
f" r I u; ?# C( i* w: O - (setq note "\n....Nothing Selected. \n ")
9 x: E8 K1 L( u" W5 b7 W* S- Y' |0 {9 q - ). _! [( X5 V5 A3 N
- (setvar "cmdecho" 1)% c% l4 v' _# L7 t* v
- (princ note)& O8 t9 I: o& B t6 i
- (princ)
) w' z, m4 q7 w. {& `( F) {4 T. Y - )
: U: f/ j& k$ V2 {8 z" G$ O
. p4 x* v ~/ c" v! Q8 B @- ;=====================================================================
' u& E# P2 |0 o2 y - ;==================== NEW TEXT STYLE UPDATE ==========================* Z' Q$ F4 n/ f( ^; |
- ;=====================================================================
; s6 Y* |! F) V# X3 P - ) V7 j- v5 A% {8 |' F @7 P
- (defun c:nS (/ tdt ssdt sodt index): ~+ {9 B* `% g/ e
- (defun ObjName (ssdt /)! Z/ A3 A/ R" F$ D% e$ s f; G
- (cdr (assoc '0 (entget ssdt)))' i: \/ G; \" z; A, a, g
- )
5 K4 N; v$ ^/ M* ~! Y - (defun MoPL (ssdt /)
& O- t) O1 w' y# Y8 @ - (= (cdr (assoc '70 (entget ssdt))) 0)9 i5 I7 C, @4 L9 W0 Z
- )4 [' W; |+ H' w+ ?! i
- (defun NoiPL (ssdt /)8 k+ y' R# q/ D) h" g" l' v) {
- (if (MoPL ssdt)6 U5 `$ p# a! T: k: z( f# X- f
- (command ".PEDIT" ssdt "J" "All" "" "X")
; j( v7 C; ? y, ^ - )% k; k U# {) y! F
- )
* { m3 z; C8 Y: i - (defun NoiLC (ssdt /)' u( z" @" D3 v) h
- (command ".PEDIT" ssdt "Y" "J" "All" "" "X")/ V( Q1 H% u0 O- y7 F. V5 ~9 |0 N N
- )& V- [) b. h% h9 A) P& ^% i* @
- (setq- z- Z/ j. ^+ k2 a2 i, ^( b3 F
- tdt (ssget)
2 n5 C' [- \% n/ f) a p - sodt (sslength tdt)4 e: [8 t' e$ c/ c* C
- index 0- Q: k' u0 Q& }" ~. f' k' A
- )
& r! N" j0 t$ Z1 T! u - (repeat sodt4 U( @6 w- h9 l: C5 f
- (setq
) N' A% Y$ Q4 `( f3 W, B - ssdt (ssname tdt index)
' T4 L! V2 G+ Y9 V - index (1+ index)' b" x" o8 q& `
- )
2 r7 K2 f- z+ m9 W' Q - (if (or (= (Objname ssdt) "LWPOLYLINE")2 f4 L' A- M) x) U4 T; \
- (= (Objname ssdt) "POLYLINE")
( N+ |4 t( d4 X. @/ N - )
4 |$ ?8 u8 d+ ^4 x, I - (NoiPL ssdt)
* A, k* X3 \: } ^9 \. Y; U - )$ d! E0 b3 f. R/ G
- (if (or (= (Objname ssdt) "LINE") (= (Objname ssdt) "ARC"))
; a# ~) Q: k& Z - (NoiLC ssdt)
2 l v9 v3 H; w5 z ]1 t. ]# N - )0 W3 q: B/ z+ w( K1 e; v
- )- Q5 N5 _' b6 X/ {& m& R
- (princ)
6 \) r8 p# m$ Z; {) Q - )
6 g; w6 h1 l8 z" p0 f+ G4 O
9 h1 l$ D* K" @' x& \. q- ;=====================================================================
% d7 L- b/ c; r3 [3 W8 W( t - ;;; AREAM.LSP- t& P* S& e( D
- ;;; Function: Calculates the total area of selected objects& J: ~' ~% e, u
- ;;; By Jimmy Bergmark
$ N# F# z9 y' C2 |* y - ;;; Copyright (C) 1997-2006 JTB World, All Rights Reserved
( n$ i+ |% c$ D* G* D - ;;; Tested on AutoCAD 2000
: v. k& V! {6 b) [" @2 N - " K/ n+ A, x. E. c! P9 g8 k3 D
- (defun c:ea (/ olderr oldcmdecho errexit undox restore ss1 nr en tot_area)
; I0 S9 V. L: w b J4 i I - (defun errexit (s)4 c! B3 q8 Z# t; D
- (restore)
' P. S& y. _% D: P - )
) p" M" J5 m1 P- W- X9 y
! i7 u) h9 }# U# ^3 q- (defun undox ()
4 m+ W5 l6 W I5 W; W3 v v- J5 ~ - (command "._undo" "_E")
- j; s5 K! T7 c - (setvar "cmdecho" oldcmdecho)
R: p( a! i. e! S& s# ~" F - (setq *error* olderr)8 |7 {' j* Q3 p7 }' O& N/ O
- (princ), y/ L1 T2 u, ^/ B; F
- ): |7 S# @. H) _
$ d( X5 {; O: U" d% q* | A- (setq olderr *error*
2 L2 T$ R* J9 \! d7 M - restore undox5 e9 V: m* n. [9 E/ i
- *error* errexit! P1 ~* q4 g8 ?9 }' t4 M% k+ o" q' c
- )
, X: c4 W: h- c - (setq oldcmdecho (getvar "cmdecho"))0 p. S1 T/ g8 A* Q5 g
- (setvar "cmdecho" 0)
! `! e( Q0 j+ ~6 Z9 T% g' s# J - (command "._UNDO" "_BE")$ n/ I9 y/ ]" b* b, T8 j; g4 k
- (if (setq ss1 (ssget '((-4 . "<OR")# W# u0 p& K, i; u* n
- (0 . "POLYLINE")
4 I8 f; Q: k' f7 [/ Q& A6 s - (0 . "LWPOLYLINE")& K! q8 P# Y! a' i0 y5 l/ e# v
- (0 . "CIRCLE")
: g+ w: G- o- F" V - (0 . "ELLIPSE")9 ]/ X) {; t+ ]) q3 J
- (0 . "SPLINE")
2 ?7 ~7 i( l0 z8 @ - (0 . "REGION")
5 K2 v( M p& `. w/ s - (-4 . "OR>")
# B/ r S& V* |2 n. H. t1 _2 A - )8 z+ K/ T; @1 c3 _8 N" ?. ~
- )3 G: {8 @4 \: r4 `5 L. I* G+ p- i
- )
- {+ n6 @# M: b' n. x - (progn6 r" Z! ]% G# z8 i, }" m$ D
- (setq nr 0)6 P% v/ f& I- d& u$ D5 K& E
- (setq tot_area 0.0)
( k# R8 W7 Y c - (setq en (ssname ss1 nr))$ P# _& m" p3 {& M* E: C
- (while en
2 o1 f' P! ~ d+ z% a6 S - (command "._area" "_O" en)
' X4 \ K- ^5 v& z" f - (setq tot_area (+ tot_area (getvar "area")))
" ~# g3 D8 W* F1 _: R$ W - (setq nr (1+ nr))# R- n5 V/ c4 b" w( f: ]
- (setq en (ssname ss1 nr))
: l4 y i" }- U& P* P' I - )8 V& h& T, p' i# Z4 ?/ H
- (princ "\nTotal Area = ")
9 ~; a5 e) Y" W" t/ q D+ u2 S - (princ tot_area)
/ l! b4 Z" n6 K4 Y1 J/ U# a" r - )
* X) M# t9 E; U! X9 Q; d* _6 v - )
( e6 q) u" j& {3 _. d - (restore)* O" q+ m: E9 ^6 A
- )2 Y4 X( M H/ n8 d0 X% Q3 s- _
! i0 I' m% }$ ]: z: ^7 f- ;=====================================================================
) r; j' X( b( Q - ;;; By Jimmy Bergmark0 v+ S+ [$ m+ D
- ;;; Copyright (C) 2008 JTB World, All Rights Reserved
8 F& J4 n! H. }9 ~. L - ;;;5 n& M, x$ L! f) S: ?' ^2 N; F
- ;;; Created: 2008-03-31; w2 H" d; A% h, K
- ;;;
5 b% ?* z m* g, b2 y - ;;; Convert Attribute definitions to mtext
! w. k6 U7 h6 Z$ a8 _" y - ;;;- a5 u0 S7 n- S3 {" p
- & K$ h( ^6 V1 z1 U8 I) r
- (defun c:ATB (/ eset1 blkcnt en enlist tag1 ht pnt vl space)+ ]7 a1 C6 o5 l6 N
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))
% a! _. F# }# o5 r& B0 |- H( _+ U - blkcnt 05 m! u5 T6 l0 d1 m1 ~# S: b
- )
% s3 G9 P5 N" K0 ?8 N
, H, d9 _/ K! C8 O& L# `0 R0 u% F- (if eset1
, C. k) |1 X/ V* |, T( T - (while (<= blkcnt (- (sslength eset1) 1))
w0 S' J0 H- Y( a - (setq en (ssname eset1 blkcnt)( K. Y' w- v r) n
- enlist (entget en)6 \# R- T4 ` F+ Q/ w% s1 X
- ht (cdr (assoc 40 enlist))
/ _# U3 Y( o" t3 z/ V4 h - pnt (assoc 10 enlist) ?( l6 y( A1 i. D. @6 Z0 J0 e7 @
- pnt (subst (+ ht (caddr pnt)) (caddr pnt) pnt)$ h1 {0 m! Q h0 J4 G u# F
- space (cdr (assoc 67 enlist))
- n7 m8 T' c) ]6 k - )
% \ e) R1 y% `$ B v8 g' a - (setq vl (list0 H _, F6 {( h; R) P+ O d& C
- (cons 0 "MTEXT")
- J* C, o* Z( o ~: m - (cons 100 "AcDbEntity")
/ r g' N9 `! K* W& y# O: E# r: ?) x - (cons 100 "AcDbMText")6 y5 u* b0 z Q' U9 F
- (assoc 7 enlist)+ d; P; O' @4 |
- (assoc 8 enlist)
# z/ M% S5 s( f - pnt
/ r, {1 o! r3 N: L, d% i5 k - (assoc 40 enlist)
( _/ O$ N. r/ n& P - (cond ((assoc 62 enlist))
( `/ A' r& R& }6 w. g - ((cons 62 256))
# B8 m8 Y' F, y& B( |/ |+ O7 C - )
0 @1 C5 O8 [* I/ Y4 x - (cons 1 (cdr (assoc 2 enlist)))
1 f3 O& c( n. S6 b% F, e - (if (= space nil)
9 o# u- a/ V& D$ E - (cons 67 0)
6 J; T, s5 e6 {9 x$ E - (cons 67 space)
4 H" z8 h( U7 v0 U$ N - ). g! C: I+ _4 T. G
- ) I2 u9 g: r2 D8 W
- )
4 F5 l! q8 T% f0 r - (entdel en)
+ c: O/ B( c4 q* T' M3 H' h - (entmake vl): b; y6 J' ?' w
- (setq blkcnt (1+ blkcnt))/ F$ J$ Q# f9 J/ Q; M
- )
2 H* R/ U2 K; r - )
& G! v; ^; L7 I2 Q, S( a" M - )# [) v6 g) Y% h0 k
- + V! j3 J1 L" b
- ;=====================================================================
9 G! _$ d, W+ }9 ^2 T7 G8 q
. ~. U, e' j4 l- (defun c:xxx ( / cumdt dodai thoat dem ten doituong textxl dem goc toi)
) h3 T1 e' X; W( G; b" _0 v - ; Khoi dau cua chuong trinh
- R9 |3 e9 \9 r7 l" s+ d' P# V - (princ "\nCopy Inteligent...\n")
" J/ \$ Q& ?& \5 c! L8 Y8 s - (setq luuecho (getvar "cmdecho")
, w7 A" R: R3 O - luu *error*
# g1 x: L) H0 K5 j! r& ? - *error* ketthuc
( a6 g7 A" w# i0 Y5 D& L; P6 y; r! ` - cumdt (ssget)
/ i' T! T8 F2 z6 } - dodai (sslength cumdt)+ {2 D& b/ \. t0 N, i% R& r; H% [
- goc (getpoint "\nSelect base point:")# e% k6 I; e2 L* y
- thoat nil) w, L4 o$ {0 {/ \
- dem 0( S( |! d, s. L( s7 g9 V$ @8 @
- textxl nil7 ~ R, s' l$ c3 {6 |
- );* e3 E" }8 u+ j$ r6 q1 Y. H
- (setvar "cmdecho" 0)
( r3 x0 ]. I5 {5 J - ; Loc ra duoc ong text de xu ly/ Z: C) l, g5 I+ A9 T. Z. d
- (while (and (= thoat nil)) f% r0 M ]' a
- (< dem dodai). P ?# Y" i9 z8 l( s0 C. k# D$ }6 [
- )
8 U7 D( A! v M7 _6 `- t7 R* v3 T - (setq ten (ssname cumdt dem)- S- g% K0 A. @9 M( m
- dem (1+ dem)
q' `5 l% `- p9 t8 y( [$ C8 _ - doituong (entget ten)5 J% n* C( ]: z, S0 K9 a8 W
- kieu (cdr (assoc 0 doituong)) % z+ @% [6 A/ u) ~
- )! p+ M$ T1 s" ]4 Y0 i5 X
-
3 k0 Q" ^; @5 Q" N7 [ - (if (or (= kieu "TEXT")! y( H4 q% _, `! r0 C9 m' w
- (= kieu "MTEXT") & p# F# {7 T3 K2 S8 n2 ^- J1 |
- ): K5 z4 Z( R' Y
- (setq thoat T
. T: d# `( A' u9 {: e0 {! } - textxl (cdr (assoc 1 doituong))
, R% e3 e2 l& x0 W - )
2 w, s4 q2 i$ y% G6 N - )
9 C2 T' ]7 Q* M# J! w+ H - );8 Z! e. f# w' ]% J" b# e
- (while T
9 s4 f! [1 _# R+ l+ \( A* Z7 Y' r - (setq toi (getpoint "\nSelect next point: " goc)
" r5 q) ]& I" O$ e - vitrilech (list (- (car toi) (car goc)) (- (nth 1 toi) (nth 1 goc)))
; {8 ~4 U+ o8 a( k( v - dem 0# m9 R4 t8 z' `0 Y/ q6 S
- ); i. e3 e: Y3 M4 D0 }( u( E4 g
- (while (< dem dodai)* E0 \" Q3 ]& ?1 g/ h" U" A
- (setq ten (ssname cumdt dem)
2 F% F( e- C7 { - dem (1+ dem)8 h% G9 K! ?* r5 B6 i+ l
- doituong (entget ten)
2 i: J: l3 n3 A - kieu (cdr (assoc 0 doituong)) ' H3 p( Q u9 w! H! c2 @
- ), n P, G, |/ i3 C" i7 n
- 2 W% V5 S) k+ t3 P3 b
- (if (or (= kieu "TEXT")
5 o6 t0 R6 K+ n, E - (= kieu "MTEXT") & m( a: S b3 `5 Z2 W
- )4 _- y% n& C! | V* k2 A9 R
- (doitext ten)
5 Z8 ^7 x7 P( y! k8 b) v R - (copy_dt ten)
* a' K% e: [/ V8 D( H( @/ H
) C" e' L, n( f+ i- );if
! w6 S( M, \2 F8 d - )# d+ \: p- _* n; W+ Y7 n
- );while
4 A8 B: I/ P4 l8 Q5 _ - (ketthuc)8 I$ `( L/ M- D, S" `) t" _
- );defun
* M! w4 q7 ?# b2 a( S& g: z* b- A! Z - (princ)
' r$ q& o# O- l& m
0 @5 W `- e* c4 ?& X( a2 m5 y- ;=====================================================================3 W- g! T3 y0 p6 g; C
- ;;; By Jimmy Bergmark
5 {; _" o4 m2 e; p5 X7 s0 v - ;;; Copyright (C) 2008 JTB World, All Rights Reserved. N/ J+ Y( T% Y6 t9 x) b! J, c
- ;;;- o) F7 Q! O s$ m% J# x. P# }, |
- ;;; Created: 2008-03-31. M$ U6 f' @. T% n' a6 ~ r
- ;;;8 ~- H4 ^. @; X/ d D
- ;;; Convert Attribute definitions to text
9 l/ W9 F* S4 g# n) y: G- O8 h - ;;;3 J! Q0 j0 u3 e* _8 { S) C
- % N2 l4 e' [- Q4 i2 y9 v, m
- (defun c:ATT (/ eset1 blkcnt en enlist vl space)( v" [6 O. f1 D. T
- (setq eset1 (ssget (list (cons 0 "ATTDEF")))$ |! P, s" K) X& `: e
- blkcnt 0
8 P; K* l2 }: J% m8 X0 b - )
+ l7 Z( C0 b- |$ E* d0 X
6 l$ }5 K! c: J# u: K( {3 ^- (if eset1
7 S0 {/ I/ t# }, n' J- a - (while (<= blkcnt (- (sslength eset1) 1))
6 _( h9 M" P6 `& R1 H& q; z - (setq en (ssname eset1 blkcnt)
& F4 X, N5 b v+ q* r n - enlist (entget en)
, f2 Q7 K7 h- ]* {: F9 d0 E" c- G - space (cdr (assoc 67 enlist))
, M: W) [0 \0 e9 K# {6 i4 F - )
0 s+ d! ]' Y2 C1 @* w5 b7 N - (setq vl (list$ ^/ B: X* s( ]. F2 @/ o
- (cons 0 "TEXT")
6 L! V4 L6 G+ Q9 v - (cons 100 "AcDbEntity")
/ _% k+ u! f0 X/ L- u+ _ - (cons 100 "AcDbText")7 `: E/ G& d4 [$ [; s5 i+ q- H
- (assoc 7 enlist)
l8 [/ h2 L) p# D, n: O4 W, M! B - (assoc 8 enlist)
+ o* |8 A4 M! S2 c! }3 ~ - (assoc 10 enlist)/ Z3 |% X9 v( i! Y, c1 O. e; m1 h
- (assoc 40 enlist)
# b$ g5 a# H. H4 [( B4 |/ v - (cond ((assoc 62 enlist))
+ c |( n% ^1 K+ d2 T - ((cons 62 256))
. m4 |8 ]& o; M0 }" M; i* s. A; m - )# N3 o. L2 }; F5 ^: t/ J6 }5 B
- (cons 1 (cdr (assoc 2 enlist)))
" z) B- Z8 T" \$ [! A - (if (= space nil)) J7 K n1 w0 t
- (cons 67 0)! {/ q5 p! X, Q* R$ i; t
- (cons 67 space); D" I! {+ V: x& A& A, g' D- W$ w
- )( C8 j) }/ C) w- T% C$ D
- )
) @2 a1 d+ y2 ]4 Y- X6 \ - )
& H( n/ x M4 |: w' {1 L. | - (entdel en); B! j$ Y8 w0 t5 |
- (entmake vl)
' T* _6 O/ e0 O' {- K - (setq blkcnt (1+ blkcnt))
0 d8 z5 t# h& I, o' v - )9 d3 j7 d) } N3 u" ~- y. D
- )+ J7 X: `7 a) L: G6 u, w
- )0 m) ?! _7 h* c: m* u( R
- ;=====================================================================
2 ~. e$ k8 D0 A* R6 C - ;============================ Doi Truc ===============================( `3 G t ?5 v) A1 { b! g5 y1 P& P1 A
- ;=====================================================================" |1 t" j/ q8 ~& C- O8 \" w: r8 P
- 2 e' r: U% {! z2 M- f
- ;=====================================================================6 q: S" i# z2 y5 ?3 O3 x
- ;=============== FUNCTIONS GA 1+3+5+7+9+11+13+15+17+19 ===============' I( ?9 g! B, c1 N: p% ^* j
- ;=====================================================================
* f1 \* ~0 i1 f: o) }% a - (defun c:ga1 ()
2 w. f" J1 e; G, \0 A3 y9 C - (setq a (getpoint "\nChon diem: "))
$ B3 b j0 D3 `0 F: a. q% a - (setq b (getpoint a"\nChon diem: "))
" x; h, F# e; T# ]: H4 ] - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
- @8 I' l, I8 y" K% B - (command ".circle" c a)& g& L+ l h/ [5 w: F& g' F6 B
- (command ".line" a c "")
+ B5 j5 ~& c% Z0 r1 O2 F$ b - (command ".array" "last" "" "p" c "1" "" "")8 x) p/ [# i5 I: P. _
- (princ)) v1 l% X. t/ ~0 \( w6 F& J; [. h
- 8 z& h4 w+ G% l& R6 B
- (defun c:ga3 ()8 i7 o3 q. U% g& L
- (setq a (getpoint "\nChon diem: "))% b2 S# C3 Q7 Y" `' N, X
- (setq b (getpoint a"\nChon diem: "))4 p4 o$ J" u6 J8 |
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
/ L m! X% M) l9 ]* n9 C - (command ".circle" c a)) P0 x- z; B7 U
- (command ".line" a c "")) y/ S/ I/ Y. d4 c3 b9 {9 e
- (command ".array" "last" "" "p" c "3" "" "")
! L4 L3 L' t3 w+ i+ ^- {9 r - (princ))
4 E4 u, B( s) f% i4 q! h
9 c; U) t$ u; P- (defun c:ga5 ()7 {9 B5 ^6 Y& y# U# ~- ?! b
- (setq a (getpoint "\nChon diem: "))( I3 b2 S& ]" Y% |$ _- s
- (setq b (getpoint a"\nChon diem: "))
% i/ l0 Q# l& `! B- w/ ? - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))1 o6 W. A* q4 a$ C3 Y0 i
- (command ".circle" c a)
0 j, l7 t7 c5 y+ E8 H6 t - (command ".line" a c "")
. c2 X, N# w( k - (command ".array" "last" "" "p" c "5" "" "")
6 W& ~, d5 S/ Q6 O' z6 y - (princ))4 c; i7 M7 x ?# \- J+ D2 i6 M
% f. T) o6 Y! |, a; {- (defun c:ga7 ()% ?5 L. C% N8 a# @8 s# c
- (setq a (getpoint "\nChon diem: "))
5 N" h$ v8 P# w+ D7 { - (setq b (getpoint a"\nChon diem: "))
5 ^9 z3 p1 N, e% i - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
0 y+ }) B+ S3 j5 i$ w* C - (command ".circle" c a)
) g/ o; h, ^1 }- D - (command ".line" a c "")% V" ^8 \6 q4 p% |
- (command ".array" "last" "" "p" c "7" "" "")
" a: w/ K( @; E: c( X - (princ))
5 [2 f! p9 F1 R: v) i4 E- d) ~* N - ! G" b4 w$ p6 G0 d4 j
- (defun c:ga9 ()
1 H. m0 U/ U$ r" n - (setq a (getpoint "\nChon diem: "))
0 z6 W$ b2 C2 x. v& H7 R - (setq b (getpoint a"\nChon diem: ")) F( ?: A3 T2 d5 b9 Z
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))9 A3 l* Q" |& X
- (command ".circle" c a)
" y. e1 I% H7 q6 e9 }1 a - (command ".line" a c "")5 j4 d' F1 k- X3 I7 I3 u* V
- (command ".array" "last" "" "p" c "9" "" "")! b% k7 F4 P/ ?5 C
- (princ))1 i9 Q6 ]3 Z/ E1 \
. r, C( n3 N' }' g- (defun c:ga11 ()' I/ I$ I, }6 Z6 `
- (setq a (getpoint "\nChon diem: "))! J# y0 `, Y; i; c! b
- (setq b (getpoint a"\nChon diem: "))" p" P5 `# W* I
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
8 N- @) R# K* Y - (command ".circle" c a)
6 y, ?2 e+ U. r - (command ".line" a c "")+ {5 L! t, u( i, a* [+ K( f1 i
- (command ".array" "last" "" "p" c "11" "" "")* y' z5 w$ a! u
- (princ))4 d0 ~) H+ p& C4 O, [0 Q
- - ?: M5 Z0 y* A) |
- (defun c:ga13 ()
5 y! R; A( v: d3 j" A5 d$ o7 C - (setq a (getpoint "\nChon diem: "))- @# A, S. E t2 l' h
- (setq b (getpoint a"\nChon diem: "))
3 J3 y$ j& \( i1 {, K0 F( L: H - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
7 ^7 ^/ K1 H7 G - (command ".circle" c a)
1 b$ ?6 Y) R6 N$ Y( G - (command ".line" a c ""), ?* ]: n' y5 W& g
- (command ".array" "last" "" "p" c "13" "" "")
4 s# T6 [; H# S- u7 ]8 I - (princ))8 j4 D8 \$ _. z K5 R% }
- % o5 S3 a2 w( E' o- t' T
- (defun c:ga15 (). ?5 c F0 }0 K% n T" u4 L
- (setq a (getpoint "\nChon diem: "))8 `6 c2 X7 A4 ^3 ]5 Y2 M
- (setq b (getpoint a"\nChon diem: "))
' ~! m4 T( |' ^, N8 L8 ?0 V( Q - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
, Y+ K6 \( b! i, Q9 Q - (command ".circle" c a)
7 i% `* v, d9 s - (command ".line" a c "")
. t; b6 m& ?# Q6 a5 H u - (command ".array" "last" "" "p" c "15" "" "")5 O) t( v" ?4 x0 E" _* ~* g
- (princ))
! i* B4 L' K7 }7 g5 U/ O - 3 ]8 U$ I9 h1 s, Q w2 ^1 ~
- (defun c:ga17 ()3 N, d6 D1 V- z. \/ k; K! Q p
- (setq a (getpoint "\nChon diem: "))
2 _8 D' ?! c0 Q6 h% M! A' A - (setq b (getpoint a"\nChon diem: "))$ z$ d4 h7 i/ K% t
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
: R8 _ _% R0 R4 w - (command ".circle" c a)4 \" T4 H" i. d) M
- (command ".line" a c "")9 [8 x O( g3 ?
- (command ".array" "last" "" "p" c "17" "" "")# B: _; `, Y( N8 t$ z+ t! I
- (princ))
" j3 f Z. M. U5 Y; \ - 7 \4 S3 a: U3 t5 Y$ P1 I" \
- (defun c:ga19 ()3 K1 U) ^( k$ y! j1 K+ c& W( c
- (setq a (getpoint "\nChon diem: "))$ ~+ G$ K I' w- k
- (setq b (getpoint a"\nChon diem: "))
+ ]% c2 @- |$ N! z# g6 H - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))5 {2 ~6 C( [. V
- (command ".circle" c a)
0 b! N# n) r% _% e9 I - (command ".line" a c ""); K, r# E. Y& ?
- (command ".array" "last" "" "p" c "19" "" "")# h6 m+ E1 c, ~. |% F- [, U
- (princ)), z9 C9 K# S: n; W7 o
- / ]: a4 [* `8 `/ p
- ;=====================================================================' Z, i* T2 o0 s8 r2 `3 d: g
- ;============== FUNCTIONS GA 2+4+6+8+10+12+14+16+18+20 ===============- A( Z0 {5 d! \' p$ m: D
- ;=====================================================================* D% n) A$ G8 V; o# a
- (defun c:ga2 ()" ?6 l- x. Q( s& E
- (setq a (getpoint "\nChon diem: "))# Y( m( n" O! q/ a# e/ Z
- (setq b (getpoint a"\nChon diem: "))
# Y, q! s+ O4 t9 t8 G; {: x; ^ - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))) g0 l, S3 \& s
- (command ".line" a c "")' q' R |# K R2 X" y' R% }
- (command ".array" "last" "" "p" c "2" "" "")
) q- L1 U2 R: M9 C" X& s - (command ".circle" c a)3 T( P. X. T1 J5 H5 B
- (princ))4 ]! y3 n' O9 ` l" Y
; v0 t/ [5 M& R4 i- B4 ^( V# e- b- (defun c:ga4 ()2 `$ y! N1 K- m
- (setq a (getpoint "\nChon diem: "))' r4 Y$ |2 @* o
- (setq b (getpoint a"\nChon diem: "))
& c3 P, I9 n: i7 T9 L! e" ? - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
( L' Q* n' u% }% z' r5 r - (command ".line" a c "")
) p# S* E) A- a& f; @ - (command ".array" "last" "" "p" c "4" "" "")
" d- K# }" X0 n1 \ - (command ".circle" c a)* O/ y2 A) c4 [' T8 [
- (princ)), x$ j5 u2 y1 U5 I2 W+ X
/ ?& M, s! }0 u& q- (defun c:ga6 ()
, a- Q) T( n, E) l E+ o% ] - (setq a (getpoint "\nChon diem: "))4 r7 k! q/ Q. _' E" Q/ z
- (setq b (getpoint a"\nChon diem: "))+ f; H. P( v0 ~+ e& p
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
9 z- b4 e' y+ y* L$ Y" ] - (command ".line" a c ""). g2 }) M3 Z4 ~$ e
- (command ".array" "last" "" "p" c "6" "" "")
# f( O: h2 o7 ?7 R- C6 w - (command ".circle" c a)
0 h* `9 M! p( |- J1 V - (princ))
. F$ S4 M: T* I) w- t' ^
d* j8 D7 ?+ O- (defun c:ga8 ()* N! G8 a, v5 B
- (setq a (getpoint "\nChon diem: "))
9 N9 u* ] U; w# R0 d: [" e# G6 b - (setq b (getpoint a"\nChon diem: "))% @% C+ D( J) g s$ q0 ]/ |9 a
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))8 F6 {6 B" o, i. E5 u( L% d
- (command ".line" a c "")
. x, U$ C7 q9 A) k3 _: T - (command ".array" "last" "" "p" c "8" "" "")
8 d3 r6 i- B, P S- j6 l1 r) } - (command ".circle" c a)
; S0 R' S6 E3 v- i - (princ))
: O6 i4 p# `1 B* M# U9 `! N - + @% \7 D3 d1 ]+ E
- (defun c:ga10 ()" s- x6 U, J P9 O4 m3 P, \% s
- (setq a (getpoint "\nChon diem: ")) o3 ?5 C r2 \* I, {
- (setq b (getpoint a"\nChon diem: "))8 X$ ~) P: h& Q# H
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
# s- f' G9 }) n! g" L% {+ m- O - (command ".line" a c "")
6 W" P7 V( _# o - (command ".array" "last" "" "p" c "10" "" "")( F% ]" P6 ~: a
- (command ".circle" c a)3 i2 W" H. S. ?+ D m
- (princ))) I0 J; {& @0 z. K
4 N* j' d$ D3 y0 ~7 `! J V- (defun c:ga12 ()
, Y5 ?5 y- {! [ - (setq a (getpoint "\nChon diem: "))
% j+ t& c9 Q+ Y2 i3 F3 b: B1 B - (setq b (getpoint a"\nChon diem: "))" }! U& Y( e U. X) C" a2 L- A T
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
t* v* q6 C4 F - (command ".line" a c "")/ h6 y( I- o/ R; C) y; E. r3 S! t/ ?% B3 v
- (command ".array" "last" "" "p" c "12" "" "")5 f1 i" b4 Y2 X( f9 A; d0 v f9 f. b
- (command ".circle" c a)0 F9 l6 c% L1 X) b- |
- (princ))5 Q3 E# {- }$ N$ \$ F. X0 [8 F
- 6 X$ c" h v# G/ A: [
- (defun c:ga14 (). m! ~4 u4 H: v
- (setq a (getpoint "\nChon diem: "))
# r; K7 q4 t- p; n" e- v; f& w - (setq b (getpoint a"\nChon diem: "))! f/ o6 N) Z3 w3 Q1 R
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
! j5 U# a! p1 Q f - (command ".line" a c "")
$ p" w: Q- h9 O - (command ".array" "last" "" "p" c "14" "" "")
! u E% ]9 l9 |8 X2 h - (command ".circle" c a)
5 h. }, f. F$ {& q9 h - (princ))$ v7 u% u2 E- N- l) r9 @
7 _1 O# N, R5 [ A/ X$ Q% S |- (defun c:ga16 ()
7 D5 t6 r. Z4 p7 W* f( T - (setq a (getpoint "\nChon diem: "))
g0 z0 c# \, Q8 m6 t) Q) `# t* D - (setq b (getpoint a"\nChon diem: "))' R; K3 w" W) Y$ ^, W
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))/ p# A9 A6 D6 t. A+ h, Q
- (command ".line" a c "")
. h( K( x. \" k5 c! }6 V - (command ".array" "last" "" "p" c "16" "" "")
7 y- r% T# P4 H2 L5 b - (command ".circle" c a)
! i |& n5 a8 a - (princ))
% }. R# r, n, N* u2 c0 ] - - i5 V+ c7 `! M+ I$ k; _# i
- (defun c:ga18 ()
r: e0 U K9 M" v V0 c - (setq a (getpoint "\nChon diem: "))
0 y8 V M* D) g: Z7 G - (setq b (getpoint a"\nChon diem: "))
, |- L: [2 }- G - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2))). j1 E7 u6 c$ n4 ]: b" P- y2 |
- (command ".line" a c "")0 [( w' q8 Y3 o# h
- (command ".array" "last" "" "p" c "18" "" "")1 K& H1 u3 W; V, z$ G
- (command ".circle" c a)( J9 b1 S }" Q) H2 q$ f; I
- (princ))3 C# P" F- O3 j/ r O) K
- 6 l& d/ M' g! p% @
- (defun c:ga20 ()
9 S. Z* ^/ R8 ` - (setq a (getpoint "\nChon diem: ")): {1 `' M. Q! }$ L: q2 x# k) m* e. b
- (setq b (getpoint a"\nChon diem: "))
* l1 B: w! i6 b. Y6 u. c, T - (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))' X# u5 C& T5 [& h
- (command ".line" a c "")9 f2 O& v5 r. u$ W6 U$ J
- (command ".array" "last" "" "p" c "20" "" "")1 y# T5 @9 m! m# f' u# E+ f
- (command ".circle" c a)* V9 s( C; L( v! l
- (princ))! i: a) A- ?) L# s4 L* b
- ) Q I3 `: R3 P; {. f! X) `- X
- ;=====================================================================" ~5 c; [; @) {& `" C% V
- ;============== FUNCTIONS GA TUY THICH : EVERYTHING IF ===============! {% v/ e5 t' U k% c9 h6 {
- ;========================== 06-11-2016 ~ 18h00 =======================/ Y; X; C) u0 x; l M
- ;=====================================================================
3 z+ J% N ^: O1 ^- Q - (defun c:ga ()
) C: Z: Q6 f: n) i; M% u9 _- f - (setq a (getpoint "\nChon diem: "))4 m4 A" d* j' p* z' O5 l
- (setq b (getpoint a"\nChon diem: "))6 _# F- e7 C; Y0 Q
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
5 X* v1 E U* e, D; W - (command ".circle" c a)
& |' p& K, y/ h7 g - (command ".line" a c "")
7 V5 ]- B' y1 p4 S - (command ".array" "last" "" "p" c "NUM" "" "")- C3 c7 w0 P5 A
- (princ))
/ D, X" A" |% ]; j# p! h
' Z, t& p) n1 P! _) X9 G- ;=====================================================================$ v" M3 E; p( L( c# l8 \
- ;=========== FUNCTIONS HOA THI TUY THICH : EVERYTHING IF =============3 J+ \! z& B h
- ;========================== 06-11-2016 ~ 18h40 =======================
5 v( G- a8 f& T8 U5 _0 o9 S* y - ;=====================================================================
' c# W$ Y# Q% L. _% m
+ _2 S: V/ D- a! t: W. q1 s- (defun c:hoathi ()
3 {* I; _; q; Q2 C - (setq a (getpoint "\nChon diem: "))
+ S) F n4 f9 U- h/ B u+ x: H - (setq b (getpoint a"\nChon diem: "))0 z& [. x" I! r' k: D3 W% H
- (setq c (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
( w) Z$ A, y- z0 G$ g - (command ".line" a c "")
j& e' l; Q6 \5 ^4 A6 |# \+ e - (command ".array" "last" "" "p" c "NUM" "" "")
* o. \5 S4 M9 x* H6 k- E7 I0 r - (princ))
, {. j& x! R& b9 o5 D0 b - 0 i* h$ K: e# ] u; i0 l
- ;=====================================================================
1 N+ s) E: A# t+ B; l; [+ l - ;============= FUNCTIONS CUNG TUY THICH : EVERYTHING IF ==============
% N7 L0 ~6 k) ^- o1 ~" e- f - ;========================== 03-11-2024 ~ 19h33 =======================) D( p3 N% i7 F$ x* Q4 X
- ;=====================================================================
' J/ k9 W" Y$ ^. A/ G4 C$ b
' R1 c) J8 l2 ~9 j+ L9 ?% ?- (defun c:cung ()- B& n+ c4 k; Y; w9 v6 S
- (setq a (getpoint "\nChon diem: "))
5 x4 N. K4 a% O% M$ J: S/ \# v - (setq b (getpoint a"\nChon diem: "))
% D' B( L! t' [7 b9 k - (setq c (getpoint a"\nChon diem: "))- |/ t' [ z C2 m1 K
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
. w1 `( L2 @0 _5 R - (command ".arc" a b c "")
! q, F( M9 Z" P( I1 ~ - (command ".array" "last" "" "p" c "NUM" "" "")
9 S |% p" \( [/ L' r, Y - (princ))
6 [& h1 P+ c8 q, P) C7 Y: r1 P - 2 q [+ I$ [( @9 r" X5 A6 B1 H
- ;=====================================================================
9 c# K3 j& A: [: j6 q" D - ;============ FUNCTIONS HECLOIC TUY THICH : EVERYTHING IF ============$ |' m4 U1 r1 f5 A* I# G
- ;========================== 03-11-2024 ~ 20h02 =======================
4 O( Y! [; e( W: t1 \ - ;=====================================================================% R( F9 _# I! t; D p; U: L3 v6 g
- 5 b* j' ]: Q1 M% k, b3 ?( M) K: g: x
- (defun c:hecloic ()8 R; @7 l& q! Q% F
- (setq a (getpoint "\nChon diem: "))1 X/ v6 p# X9 P$ f3 ^
- (setq b (getpoint a"\nChon diem: multi "))* [4 u* O# l0 E& m; e' e' x
- (setq c (getpoint a"\nChon diem: "))(princ)
1 ?& ]- L% |! V/ |' p- L5 U# M( E/ Y: A. ` - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))
& W3 o: |5 p( F4 @) A - (command ".arc" a b c "")
! e3 @8 ]$ }- C/ N/ k7 T) ? C - (command ".array" "last" "" "p" c "NUM" "" "")- r! G% A! q5 o; w1 i
- (princ))
+ O7 {% b7 j& A0 u
5 i6 g$ q" s* ~4 n$ g5 V- ;=====================================================================
' A0 m# L1 N E# ^ - ;============== FUNCTIONS GAY TUY THICH : EVERYTHING IF ==============$ E1 a/ A8 H, k! h, }
- ;========================== 03-11-2024 ~ 19h38 =======================
6 z/ Y8 L# ~8 E/ G C0 }$ h - ;=====================================================================
R/ G2 e% q+ q$ v* c7 h4 Z
5 s( u& L7 i7 T, \$ @5 w- (defun c:gay ()
4 y" x' m& `, c6 J - (setq a (getpoint "\nChon diem: "))* _; ^& u {7 r8 L8 x# e
- (setq b (getpoint a"\nChon diem: "))/ P$ u& t/ j8 g8 V) I
- (setq c (getpoint a"\nChon diem: "))(princ)
' l, O# } i. } - (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))0 D: f. k: x4 u: ~6 N! M7 s9 U1 ~# a
- (command ".pline" a b c "")
4 b- o# ?, X! f# f# i - (command ".array" "last" "" "p" c "NUM" "" "")+ I+ I' u [% x
- (princ))0 ^) Q& `% E Y0 e% Y
- % T, s S2 |! a# ^, z0 V; s2 D
- ;=====================================================================! L: u# g T' s* X# t7 x
- ;============ FUNCTIONS HECLOIT TUY THICH : EVERYTHING IF ============
* M# r( e9 D) H& d8 Y; I8 G - ;========================== 03-11-2024 ~ 20h02 =======================, P1 Y! ]: @% y3 d
- ;=====================================================================
# @5 [ Y' O, e9 } [# l. L* H
$ s, ]7 T! p5 K2 _7 D( ^( {) p9 ^- (defun c:hecloit ()
# q0 e% Y5 B& s9 i. l, O - (setq a (getpoint "\nChon diem: "))% n {) d, a6 d% f& ?* R
- (setq b (getpoint a"\nChon diem: multi "))
- x& D* D, w3 p' h5 | - (setq c (getpoint a"\nChon diem: "))(princ)- p8 w, D8 A# R$ Q% Q
- (setq d (list (/ (+ (car a) (car b)) 2) (/ (+ (cadr a) (cadr b)) 2)))) S6 W- |3 J- u& D5 b; ^( Q
- (command ".pline" a b c "")
b" T4 ^! X5 C0 s/ K& r - (command ".array" "last" "" "p" c "NUM" "" "")5 p' N# X. {- D% R, K8 Z
- (princ))! `0 K2 J8 @- C. y- B& h% y
5 D+ I% ]& h4 v- A, `2 q7 c
; n" g, f. M5 i6 Z# e- ;;; ============================ Merge Hatch =============================5 J6 _, {3 e& h; S
- . a: j' Q4 N2 J/ L- @
- (defun c:mh (/ ss entht sl i dt dtht)
- z, P/ C6 M+ M& t+ l
* h+ m. ~4 `% t5 n3 W7 _& f- (princ "\nMerge Hatch - free lisp from CADViet.com")
! r$ c- W7 {3 T/ b+ O O+ o
: @) _9 L3 ~2 ]. _7 i2 \- (setq
5 u/ N& n2 B, @1 D+ \- u; o - ss (ssget '((0 . "HATCH")))" _/ y; B6 s( V
- sl (if ss
3 ^9 T0 {1 L4 k/ ?7 i - (sslength ss)
! l+ T, {9 u1 _* A/ r2 E$ [* K - 0/ ?* L. X& X& `* i5 P* C
- )
& C1 D9 ^, _+ a7 G - i 0
# r' u! r, G2 ~$ j - l 07 e+ I C# e! ?, {
- )* A7 Q3 _/ l, H: n- p6 ^+ H
: ^1 ^* l/ y7 y+ b6 D* g' @) n- (repeat sl% h' |; d, E+ d% E" m/ M8 L
- (setq
% g s5 h% M' Q! n6 k - entht (ssname ss i)) O* l% k' ~# R8 X$ c! m$ \, Y
- dtht (getbdata entht)0 V% n, z- v% r
- dt (append dt dtht)4 J6 `1 @0 M- p
- l (+ l (cdr (assoc 91 (entget entht))))
+ o( v6 O, l/ E3 H. Y( i; Y - i (1+ i) _9 Q/ U2 M& H$ \( R& C% G! }, _
- )% ~5 X; W p6 @6 G' U
- ): o8 q) _. E6 X" o: s5 X0 r
* \, h( n' Q6 D3 e& h: F. T- (setq ent (ssname ss 0)
& V% `3 ]1 I4 n+ H" N0 u% V - ss (ssdel ent ss)3 j1 p, \; {3 E |' M6 |1 U% o" p
- tt (entget ent)0 E$ o, T5 O, i1 V/ ]* A
- duoi (member (assoc 75 tt) tt)
4 T3 ]3 x" p3 `& J - dau (reverse (member (assoc 91 tt) (reverse tt)))
, Y3 y P6 z) l% b x9 x& @" y - tt (append dau dt duoi)1 R6 O2 y0 y5 C: b( {5 ?) i
- tt (subst (cons 91 l) (assoc 91 tt) tt)
; v& s% _$ J' P: y/ a" \& R - ) l) O2 I! \# [3 p0 L' v6 @5 R
- (entmod tt)
3 e7 u( L* \5 P4 } - 4 |# @0 A1 D" d6 ?5 o) {+ B ]
- (command ".erase" ss ""); Q" Y! W8 X' h( }+ Y- i$ ?: S% F
- (princ)2 @) H( C2 W; g! H1 `. N
- )
3 U2 V" T- p7 v3 h8 y
2 i9 p2 R- m, Q3 S7 B- (defun getbdata (ent)
& i3 j" {7 D7 ]0 e - (setq tt (entget ent)
( z! j8 m8 Q$ F7 F - tt (cdr (member (assoc 75 tt) (reverse tt)))$ C/ |4 \ j# M- u: y3 h
- tt (cdr (member (assoc 91 tt) (reverse tt)))
. k* N# m1 v0 g6 e5 S! O: q - )
: v3 x- a& j3 G7 m& D - )
; G. [- w( j6 N. j- k3 ] - , |; w7 X/ K: e! }# ?! z" l9 P
# G! D) w7 _9 s) S# d" v- (princ)6 I/ N Y& V! p, D# O, A+ a8 v
5 J! j- H$ ~" t E; ^8 x* d- ;;; =========================== CAC LENH LAYER ==============================$ {# G" n' v% W0 f; X
- ;;; =========================== Layer hien hanh =============================
1 p5 \& ^# A+ X2 X+ u
P* ?7 B( L# N. E0 l& {- (defun layset (/ LAY) (setvar "cmdecho" 0)
1 M) ^' F5 y3 B - (setq LAY (entsel "\nPick vao doi tuong muon Layer hien hanh la Layer cua doi tuong do : "))) n, E5 w$ i0 s/ k5 u4 {' v
- (if LAY (progn % Q0 Y- V$ I b4 o% J( N( I
- (setq LAY (cdr (assoc 8 (entget (car LAY))))). a/ E" r+ ~4 l' |( E
- (command "_.layer" "set" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) )
1 L s& A# |5 P5 e. K - (progn, B# n! c9 L! J# j5 A
- (if (not ddlop) (load "ddlop")) (if (setq LAY (ddlop)) 6 P$ y2 X, F/ a
- (progn
! ]( F: t q$ I" h" ?4 g/ ~" ]0 ^) T - (command "_.LAYER" "ON" LAY "THAW" LAY "SET" LAY "") (princ (strcat "\nLayer : " LAY " da la hien hanh.")) ) ) ) )(princ) )
9 z% ?8 Y% i/ ^% Z# g - (defun c:LLL () (layset))(defun c:LAYSET () (layset))
3 @4 T5 o& {7 v2 x7 c
% M& U5 Y. i+ g0 h' g- ;;; ================== Cap nhat doi tuong vao layer hien hanh ================== n4 b9 {) w7 x5 g
- 7 D% }! c/ s' ~& b6 G6 Q1 a
- (Defun LAYCUR (/ SS CNT LAY) (setvar "cmdecho" 0)2 n: B7 X# _( D) c
- (if (not (setq SS (ssget "i")))
1 f5 J, I2 Z; G2 G1 ] - (progn (prompt "\nChon doi tuong cap nhat vao layer hien hanh: ")4 b5 K' N0 c3 l6 e' ]4 \
- (setq SS (ssget)) ) ), w& x" J- }) u5 O; b4 W8 y1 P
- (if SS (progn
" F5 d! ^1 z0 ^/ Z+ \ - (setq CNT (sslength SS)) (princ (strcat "\n" (itoa CNT) " doi tuong tim thay.")) (command "_.move" SS "") 2 u$ x9 h. C2 M1 ~" ~
- (if (> (getvar "cmdactive") 0) , W1 l& b V! v
- (progn' w' C- K, l& y1 L6 w, z# ^7 C
- (command "0,0" "0,0") (setq SS (ssget "p") CNT (- CNT (sslength SS)) ) )
1 _# E5 i5 l, }( q0 N - (setq SS nil) ) (if (> CNT 0)
+ H* i/ P; ~8 R. ]% S - (princ (strcat "\n" (itoa CNT) " doi tuong tren layer LOCK.")) ) ) )
& A3 _0 g+ w( g7 S9 p9 Q- N - (if SS (progn' e8 a' O' D' E. a
- (setq LAY (getvar "CLAYER")) (command "_.chprop" SS "" "_la" LAY "")
, h. `1 l; z0 x4 B - (if (= (sslength SS) 1)
" H. c" E* @- y' } - (prompt (strcat "\n1 doi tuong da cap nhat vao layer : " LAY " (layer hien hanh)."))
5 @2 X. g0 V$ ]# Y D - (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong da cap nhat vao layer : " LAY " (layer hien hanh).")) ) )) (princ) );end
z& n; O5 Z# [% a2 | - (defun c:LAYCUR () (laycur)) (defun c:LHH () (laycur))0 l" X6 R/ M' j! A* Y
3 t' w6 p1 J; B1 b1 D3 g) q- g- ;;; =========================== Layer Iso ===================================4 o1 O9 _: I3 {' }8 S" q/ s. S' _( L
7 Q: {! t# y% m5 p2 x- (Defun LAYISO (/ SS CNT LAY LAYLST VAL) (setvar "cmdecho" 0)
, `5 o0 @' M# |1 ^' `# v - (if (not (setq SS (ssget "i"))) (progn( {4 [* J8 `) B7 w: S8 g( g- t
- (prompt "\nChon doi tuong tren layer(s) muon lam viec doc lap: ")
2 A! p" `8 O4 _) r j' _$ | - (setq SS (ssget)) ) )
! L& E$ ^& l5 {$ ^) k# o - (if SS (progn (setq CNT 0)# N" c8 f6 H7 g7 Z' w+ g
- (while (setq LAY (ssname SS CNT))# q- P' M9 C( i4 I% ?3 j
- (setq LAY (cdr (assoc 8 (entget LAY))))$ z4 K- E! @$ c# s
- (if (not (member LAY LAYLST))7 f" ~( N% e2 a4 M5 f8 g
- (setq LAYLST (cons LAY LAYLST)) )
0 Z, d8 i5 C# o6 Y - (setq CNT (1+ CNT)) )
i( F8 O) Y5 L3 m) W - (if (member (getvar "CLAYER") LAYLST)
/ s6 p1 q! U3 Z0 _' d) @ - (setq LAY (getvar "CLAYER"))' f7 @. u9 i% s7 {' l0 p: s
- (setvar "CLAYER" (setq LAY (last LAYLST))) )
6 h; O) x `; d. g" W+ ?9 O$ | - (command "_.LAYER" "_OFF" "*" "_Y")9 T& Q. T9 R8 {/ a+ K, s7 H
- (foreach VAL LAYLST (command "_ON" VAL)): z/ v+ g' h- x6 f6 k8 C
- (command "") (if (= (length LAYLST) 1)
: a' y' x2 W' a$ f# I: \ - (prompt (strcat "\nLayer " (car LAYLST) " da tach ra."))
3 d( ~# J$ L' w. z - (prompt (strcat "\n" (itoa (length LAYLST)) " layers da tach ra. ": n. n- m& C- H7 \ B* b
- "Layer " LAY " la hien hanh." ) ) ) ) ) (princ) )
- I1 s3 j w1 s) L* j5 U - (defun c:LAYISO () (layiso)) (defun c:LI () (layiso))
8 v+ |7 G% m# _2 u# z2 { ~ - & j. N+ f$ T; Q" h0 f
- ;;; ========================= Layer Match ==================================
" i4 L# ]7 ?0 V ]
: u/ Q* K q+ a- (Defun LAYMCH (/ SS CNT LOOP LAY ANS)
- `% c2 w/ d7 U- J* z - (setvar "cmdecho" 0)
( L2 c. k: b, m% h- I/ E* D - (if (not (setq SS (ssget "i"))) (progn) s3 W+ v+ ?' _& z, K- N, q+ M$ B/ }
- (prompt "\nChon doi tuong muon thay doi Layer : ")
6 S: A7 h0 \0 F* F: U - (setq SS (ssget)) ) )
- E7 e% g7 x+ |; T8 L - (if SS (progn. @8 u( s F: G" N
- (setq CNT (sslength SS))" e Z+ l/ y; E; w+ w2 G; a
- (princ (strcat "\n" (itoa CNT) " found.")) (command "_.move" SS "") o2 h" _3 T2 M5 t ^7 k+ K6 K
- (if (> (getvar "cmdactive") 0) (progn2 k# U1 G. p f8 U+ a
- (command "0,0" "0,0") (setq SS (ssget "p")
/ ^. Z2 I6 G+ v) u' |( p - CNT (- CNT (sslength SS)) ) )
/ f& u% G1 J( y: U2 S1 P - (setq SS nil) ) (if (> CNT 0)
; O* y$ B5 _! I# O$ h* y& X - (princ (strcat "\n" (itoa CNT) " tren layer LOCK.")) ) ) ); A( ?" n- Q* d0 J( Z4 E
- (if SS (progn% F, d6 N; } Q" a3 L" }
- (initget "Ten") (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ") LOOP T ). T9 V* R, _* h3 r% o. Z; z* O/ y. n
- (while LOOP (cond
, i' F" }. r) }( J! M - ((not LAY)2 b+ Z; b; i& [ |
- (prompt "\nKhong chon doi tuong.")
/ ^% c1 Y( ?) d - (prompt "\nSu dung layer hien hanh? <Y> ")8 y3 w+ O8 e* X P: v
- (setq ANS (strcase (getstring)))
8 r6 s6 m/ ^; M' O: d! x% f k - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
) D4 r. z! s+ r9 k3 p8 d - (setq LAY (getvar "clayer") LOOP nil ) ) )# D" ?0 i3 p/ ^- g1 x% q
- ((listp LAY) (setq LOOP nil) )
$ b- i3 i& f, N+ V" y8 N - ((= LAY "Ten")( f( u' z: q+ Q/ p
- (setq LAY (getstring "\n>Nhap ten layer: "))
# v3 r; u) W/ ^* m2 ~ - (cond
1 q8 L* ]8 d0 u - ((tblsearch "LAYER" LAY) (setq LOOP nil) )
) Y2 I3 R6 L9 c% z" d) N - ((/= LAY "")/ ~% g3 F; a; Q+ E
- (prompt "\nLayer chua co trong ban ve. Tao layer moi? <Y>: ")
* s: v. x, E6 |* C$ @5 N - (setq ANS (strcase (getstring)))
" a" M* h% x2 Z0 d5 _" R" p5 o - (if (or (= ANS "") (= ANS "Y") (= ANS "YES"))
8 B8 G6 R" ^+ v - (progn
; j7 n% Z$ [# E - (command "_.LAYER" "NEW" LAY "")
8 m# H! A7 u; \! b$ z - (setq LOOP nil) )3 O( Q* H, ~5 X. ^
- (prompt "\nLoi ten layer.") ) ) ) ) )) h0 N7 y9 ^9 \2 F
- (if LOOP (progn (initget "Ten")
- @1 A$ B! H. Q! _. I8 n0 z - (setq LAY (entsel "\nTen layer/<Pick doi tuong>: ")) ) ) ); while LOOP; F: c3 H9 D2 f! H2 V
- (if (listp LAY)
7 x* F, ~- K0 G& y - (setq LAY (cdr (assoc 8 (entget (car LAY))))) )# e. e" [8 [5 G7 o
- (command "_.chprop" SS "" "_la" LAY "")
+ C5 P9 K& `& d6 ]& @! V9 t. V$ z - (if SS (prompt (strcat "\n" (itoa (sslength SS)) " doi tuong thay doi toi layer " LAY )) )
* f; t8 b/ h: w/ h" N, _ - (if (= LAY (getvar "clayer")), I' E8 q F T6 q0 ~" `1 G
- (prompt " (layer hien hanh).") (prompt ".") ) ) ) (princ) )
+ U) g! C0 h2 n) k' s - (defun c:LAYMCH () (laymch)) (defun c:CLL () (laymch)); I' E. ^' e X q# E# W
- , O! q3 N8 \! ?/ M# k
- ;;; ============================ Layer OFF =================================) g2 u6 p% t" v" O
- ( q9 A7 x5 i& k4 Y
- (DEFUN C:LJ (/ SSET SSL ENT LAY I MODE)
9 F+ p3 D/ v0 W - (SETQ SSET (SSGET)), L* R$ A6 \, f2 f+ ?8 K4 W/ Y2 r
- (IF (/= NIL SSET)
9 Z5 P1 M1 V K: D+ n0 `4 q# l8 m - (PROGN
$ v. \2 {2 K; Z. @ - (SETQ SSL (SSLENGTH SSET))8 T2 O6 S/ a# f) l/ w
- (SETQ LAY "")
9 S R) i: K: e7 Q - (SETQ I 0)
+ g, B6 C" y e" u: c, w - (SETQ MODE 0)
& ~2 B% B% R1 B( h e2 n! Z8 j - (WHILE (< I SSL)
! b; q- C& O" c* b$ l - (SETQ ENT (ENTGET (SSNAME SSET I)))* }& B: Q N$ ~& m
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )
+ k7 c) O( o' g- _) b - (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) ))" w9 q7 `5 Y+ O3 e: l" \; z/ }
- (SETQ I (+ I 1))
1 d6 H, g& p. x; Z - )
" |+ V3 v- ?& m" i# D - (COMMAND "LAYER" "OFF" LAY "")
* b: n5 L# I' n/ B0 |/ q* ~& C; E - (IF (= MODE 1) (COMMAND "") )$ a+ v, D5 O) B3 _( Y! f- g
- )
. L8 O5 ~( ~6 [ - )
4 U* M, j A; K0 F# `4 ?7 R. h; D - (PRINC)
. W$ ^( E& H S# f - )
0 B2 i6 v; J1 B3 k# r% A! U7 k - + g$ b/ T3 [2 j% J9 I# v
- ;;; ================================ Layer ON ==============================
6 [ x/ P, ]: Y2 S - 2 `) ?6 M" r6 b# `( Z! r
- (Defun LAYON () (setvar "cmdecho" 0)
7 b: L: {* ?, P, S - (setq Lay loff1) (setq Loff1 Loff2) (setq Loff2 Loff3) (setq Loff3 Loff4) (setq Loff4 Loff5) (setq Loff5 Loff6) (setq Loff6 "0")2 W# z9 o: V: {6 u6 d1 G6 E
- (Command "LAYER" "ON" Lay "") (princ (strcat "\n Layer : " LAY " da ON.")) (princ))0 q( U! o# y' i6 }4 }' `6 q
- (defun c:LAYON () (layon)) (defun c:LOO () (layon))
5 `3 ? N' V9 x1 f1 D - (Defun C:LO () (setvar "cmdecho" 0) (Command "_.LAYER" "_ON" "*" "") (princ "\nDa ON toan bo cac Layer !") (princ))
: s/ u9 J2 T, l - & t% Y* p1 u$ Z
- ;;; ============================== Layer Freeze ===========================4 c0 G, C" n3 V% {+ s
/ ]4 r7 b5 ]9 v/ V) N- (Defun LAYFRZ (/ LAY TEMP)(setvar "cmdecho" 0)
- q( p# f# D% F. z% U5 m, P+ W - (prompt "\nChon doi tuong tren layer(s) muon FREEZE: ") (SETQ SSET (SSGET))
: D& V+ N4 d0 A - (IF (/= NIL SSET) (PROGN
$ W5 C6 O* h( e* ^3 C - (SETQ SSL (SSLENGTH SSET)) (SETQ LAY "") (SETQ I 0) (SETQ MODE 0)
& q! G( A6 ]" R! d* q% ^ - (WHILE (< I SSL)) t! h! N1 w! M( M7 w
- (SETQ ENT (ENTGET (SSNAME SSET I)))5 i& a% M% V' I1 D9 l: @9 B
- (IF (= (CDR (ASSOC '8 ENT)) (GETVAR "CLAYER")) (SETQ MODE 1) )$ k- f e) M9 @: C, |- ^: I, U0 c
- (SETQ LAY (STRCAT LAY "," (CDR (ASSOC '8 ENT)) )) (SETQ I (+ I 1)))
( U* e( t/ A. B0 J1 g; b9 U f - (COMMAND "LAYER" "FREEZE" LAY "")
1 l1 W" E( N! {# p% Q - (IF (= MODE 1) (COMMAND ""))))& t% g2 c3 L- K6 {- B: a
- (setq Lff6 Lff5) (setq Lff5 Lff4) (setq Lff4 Lff3) (setq Lff3 Lff2) (setq Lff2 Lff1) (setq Lff1 LAY)( L% g' t* N! B3 [0 L, M
- (princ (strcat "\n Layer " LAY " da FREEZE."))(setvar "cmdecho" 1) (princ) )* _% l- i( p; B# r; d: K+ P6 R2 G
- (defun c:LAYFRZ () (layfrz)) (defun c:LF () (layfrz))
3 t! j! R- `% e" F - 8 ]! e1 |# Y# G7 F0 o! e+ A4 A
- ;;; ============================== Layer Thaw ===============================
$ t, Z$ W3 u- ?$ i* M5 o* v - & @- Q8 V! ?. j- z! ?
- (Defun LAYTHW ()
" j1 x3 X; E8 B3 V - (setvar "cmdecho" 0); r& h2 C7 _; G: Z
- (setq Lay lff1) (setq Lff1 Lff2) (setq Lff2 Lff3) (setq Lff3 Lff4) (setq Lff4 Lff5) (setq Lff5 Lff6) (setq Lff6 "0")
( E/ j. `% K7 E6 V" v: }; {8 O0 _ - (Command "_.LAYER" "_THAW" LAY "")
* B4 K8 ?5 w5 h$ H# j - (princ (strcat "\n Layer : " LAY " da THAW."))
. Z* Y6 I! F+ S: H - (princ) )' b8 K- R% P7 }0 g& S7 ]; {* f
- (defun c:LAYTHW () (laythw)) (defun c:LW () (laythw))& i6 r$ f' M- q- v: D
& C% O3 j; W/ w, |/ P$ W6 u- ;;; ============================== Layer Lock ==============================
4 B, C! u1 \, Z/ T' M2 ?: u; ? - % q" K2 J' d$ |
- (Defun LAYLCK (/ LAY)) @. U5 A6 F7 r
- (setvar "cmdecho" 0)* |; ?9 I5 x. U9 K
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon LOCK: "))1 N+ T9 i* O) E% f# o6 J
- (if LAY
^9 V. l3 g; O% v/ v; g1 D+ ^ - (progn, E6 V9 s) n9 j3 s9 H+ X% j
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))
( {* ?2 t6 \1 H7 e - (Command "_.LAYER" "_LOCK" LAY "")$ ?1 V' j9 j4 k' O, N% t4 g
- (princ (strcat "\nLayer " LAY " da LOCK.")) ) ) (princ) )8 \3 ?- L6 o- f. t3 v3 D, F6 o
- (defun c:LAYLCK () (laylck)) (defun c:LK () (laylck))
- T6 m0 t, g9 |7 A
\ Y- ?4 R1 |+ ~7 j- ;;; ============================== Layer UnLock ==============================5 h. c: E! `* b0 E
- / {4 ?0 y c9 h$ o6 L
- (Defun LAYULK (/ LAY)& F. e1 c9 ^3 Z) h* G
- (setvar "cmdecho" 0)) B9 Q8 e3 \4 S7 \: n7 K x
- (setq LAY (entsel "\n>Pick doi tuong tren layer muon UNLOCK: "))
1 i% ]% W" F; r9 b+ ~9 J - (if LAY
T% ~+ G. D3 Q - (progn3 O. B. S" X8 M; T- L! A% Z' b" R
- (setq LAY (cdr (assoc 8 (entget (car LAY)))))4 I* F% K$ N# @2 p. B
- (Command "_.LAYER" "_UNLOCK" LAY "")
8 _8 ^8 u. i2 b4 D" K* z1 K+ T - (princ (strcat "\nLayer " LAY " da UNLOCK.")) ) ) (princ) )+ B0 p# m# {1 D2 e" @2 ?
- (defun c:LAYULK () (layulk)) (defun c:LU () (layulk))' ~ G; U3 C; y9 K
- " e0 v+ I+ {( I* [2 |% `% E e" {
- ;;;===================== Delete all objects of Layer ========================" B, h4 f4 M3 i$ {7 D: A4 H
, u5 \ Y- g( B+ S- (defun DELAYER (/ ocmd L S)
2 U Z: i( S( I" h; k5 ~1 C, f - (setq ocmd (getvar "CMDECHO"))& L5 ^+ D$ O" ]* y
- (setvar "CMDECHO" 0)* }5 s5 X) U5 o. n3 f
- (setq L (strcase (getstring "\nLayer(s) to delete: "))): P8 r3 o' g2 ?( Z7 X
- (setq S (ssget "X" (list (cons 8 L)))) F) x6 ]" p3 P6 R+ ?1 z
- (if S - Z2 B" M9 b* b) T" G. H
- (command "ERASE" S "")
5 K- t+ C0 I/ p G" ? - (princ "Layer empty or not a valid layer name.") ) + y! j8 b. y; [8 G
- (setq S nil)
: t9 N! j' u7 s4 _: H, | - (setvar "CMDECHO" ocmd)
" m( B7 o9 u4 J( e0 b' N" A - (princ) ) 8 X' P: o. }; C3 C+ z& W) v
- (defun c:DELAYER () (delayer)) (defun c:DELLAYER () (delayer)) (defun c:DEL () (delayer))
* E6 U9 K6 T3 U' Y7 T1 @) ~ - ' C. `1 a/ ?4 ?
- ;;; ========================= HET CAC LENH LAYER ===========================
% Q0 c) S0 y7 h9 f- s# H
! k C1 D( s/ ~7 N! E: G8 f8 w- ;;;====================== EXTEND NHIEU DOI TUONG ===========================
( N' }/ V' ?. L0 K
4 n# \% o7 ?- R5 Z: @" }- (Defun C:EET (): e: \& W x5 l! O
- (Setq CVAR (Getvar "CMDECHO")) (Setvar "CMDECHO" 0)
# r+ u% a; R' z: ^: T u - (Prompt "Chon doi tuong dich cua EXTEND :") (Setq CUTEDG (Ssget))) s4 y& a) h1 P3 f4 J
- (Prompt "Chon doi tuong de Extend :") (Setq SS (SSget)) (Setq LEN (SSlength SS))
, D4 s1 f% k9 R: G7 \$ O9 J - (Setq I -1)
4 W/ s6 W& X b, t: l/ D - (Setq SIDE (getpoint"Chon phia de EXTEND")) (Command "EXTEND" CUTEDG "")1 t2 M) h9 B {
- (Repeat LEN- o3 W/ x+ d' f" |) m3 n
- (Setq I (1+ I))% a1 {; g# I+ p8 g
- (Command (List(SSname SS I) SIDE)) ) (Command "")
5 B% A4 R$ j) g- _& \, Z4 Y% w - (Setvar "CMDECHO" CVAR) (Princ "Da Extend xong moi ban lam tiep") (Princ) )
4 P9 e R/ q7 U: z/ h7 v! \ - E, H% `7 p( q" B% s1 a- r
- ;;; =============== EXTEND 1 DOI TUONG THEO KHOANG CACH ===============- O& i% k# m8 `, |( [; c1 n
- * Q" k" ]! d% p s
- (defun c:ETT () (setq os (getvar "osmode")) (setvar "osmode" 512)
, d K0 a$ F0 f) O9 _) ?4 M5 F - (setq pt1 (getpoint "\nKich vao 1 dau doan thang can EXTEND ")), F- q2 q# \/ l: X# N; b
- (setvar "osmode" os)
" d G0 N& t% E3 U4 R# E - (setq dis (getdist pt1 "\nKhoang cach can EXTEND :"))8 j. d! S! Q3 a
- (command "circle" "endpoint" pt1 dis) (command "extend" "last" "" pt1 "") (command "erase" "last" "") (princ))9 ^/ j* t2 q; o/ E
- 4 x; @* m/ l) C1 l* W
- ;; ================ Change width of polylines =========================
: z+ y7 c9 t+ T2 a
! |/ N- l% v5 |. j+ o) O- (DEFUN wp (/ a b sophantu sodem list1 ha:wid)" i8 n1 {/ ?! v
- (PRINC "\n Chon doi tuong can thay doi do day (Width) !") : s+ f* _$ Q" n
- (setq b (ssget)) + f0 j) H+ z2 V) ^
- (setq sophantu (sslength b)) 7 d. |! p9 H" y. ?1 t' J$ D
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))# y" b/ b7 A8 g. l7 L0 w$ d* I
- (princ "\nDo rong polyline <")
; w5 b& P( y- I x - (princ ha:wid)
# M5 s6 j/ Y P6 G' i - (princ ">: ")
. l: I8 b, z5 L6 g5 y - (initget 4)
, Z/ o7 z" d% t2 h& {4 f - (setq ha:wid (getdist))/ q8 A, d7 o- H, W: j; `
- (if (null ha:wid) (setq ha:wid (getvar "tracewid")))1 W6 P4 p+ y/ q1 h0 ^2 ^8 K2 C. D
- (setvar "tracewid" ha:wid)3 {- e" l2 `! P! ^. r; @
- (setvar "cmdecho" 0)7 C" F9 Z+ l# [( L2 @
- (setq sodem 0)
1 v! H( n% b$ I, m0 v, D - (repeat sophantu, M: S6 K# ?! Q) b
- (setq a (ssname b sodem))+ D+ b: f- c2 P; w) t
- (setq list1 (assoc 0 (entget a)))$ @% A+ `# m- ?; Z. u5 s& n# L2 b
- (cond
0 ^! {7 `& X2 A5 R - ((= (cdr list1) "POLYLINE") (command "_Pedit" a "w" ha:wid ""))
! S) p4 g5 k/ D# b+ x9 | - (PROGN (command "_Pedit" a "" "w" ha:wid "")) ) t7 V5 E& T$ ?1 r* s: i9 r! I
- (setq sodem (1+ sodem)) )(SETVAR "cmdecho" 1)(princ))
9 q+ v, o" T( W& G3 m# O - (defun c:wp () (wp)) (defun c:pw () (wp))1 P. a/ [! g$ g5 K
- 6 B3 G0 p9 [) l6 u: B1 V
- ;; ================ Change radius of circles ==========================
, {+ [: p% `8 U4 `! h% l# ]
5 v: s) G. ~: x% y s- (DEFUN C:CHR (/ SSET SSL M RD I) (PRINC "\nSelect Circles :") (SETQ SSET (SSGET))
/ u$ @- _5 L( ^6 j- ^: L8 [7 t - (IF (/= NIL SSET) (PROGN (SETQ SSL (SSLENGTH SSET)) (INITGET 4 "") (SETQ RD (GETDIST "\nNew radius : "))1 k1 H% l! u4 _
- (IF (/= RD NIL) (PROGN (SETQ I 0)
, C$ g' v' P- E5 g9 ? - (WHILE (< I SSL) (SETQ M (ENTGET (SSNAME SSET I) ) )
5 a# H) Q& S( X4 Y& \1 N - (IF (= (CDR (ASSOC '0 M)) "CIRCLE") (PROGN( Q! q. N* W$ V6 Y" M/ w' ]
- (SETQ M (SUBST (CONS 40 RD) (ASSOC 40 M) M)) (ENTMOD M) ) ) (SETQ I (+ I 1)) ) ) ))) (PRINC) )" E/ Q! w9 N( J3 ~ n
- 3 o' F. Q- L. ~2 i9 R
- ;;; ============================== TEXT Hight ===============================$ `0 a0 E( }, l% ~7 O. o
- % Y" t0 |* G4 K, }; z" C# k+ s2 w
- (defun texthght (/ ent hght)
# V+ J1 L7 m4 U1 O5 v3 |7 w* k - (setvar "cmdecho" 1)+ v* p' Z4 {5 ]; g. F, d
- (prompt (strcat"\nSelect text entity with required text height"))7 C1 K8 x% _% R) z) j. W1 u
- (prompt (strcat"\n."))
. c. ?% t3 {5 ]) o* r - (setq ent (entget (car (entsel)))), x# _, j! \8 t D
- (setq hght (cdr (assoc 40 ent)))8 H" m$ y! X, h6 [: W. \
- (prompt (strcat"\nText height now set at "))(prin1 hght)" ]8 M5 I6 {- P
- (prompt (strcat"\n.")) ' s$ h6 L. T- H
- (setvar "cmdecho" 1)
/ E$ ?, X0 u+ g2 v2 K% |7 U - (command "DTEXT" PAUSE hght "") ) W" l+ }7 n- {1 x
- (defun c:teh () (texthght)) (defun c:texthght () (texthght))/ L' V. H. O4 o; i
- 8 Q6 P$ w5 T: o8 m
- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
* |& a+ |$ Z& y0 _& C3 H D# ?
, a/ b0 q2 U' p& n% C9 m- Y! q/ j" }4 a- (defun c:tuu () (setvar "cmdecho" 0)
6 X4 X7 S9 }6 r3 o; E - (prompt "\nHay chon dong TEXT can gach chan ")
. F9 _4 I Y, \' |; y* o3 m - (prompt "\nSelect objects: ")
) Y8 C2 } W* X+ {7 x5 X7 T - (command "select" "au" pause)3 J1 M: f8 l0 ?& f0 j
- (setq sstxt (ssget "p")
# E V; w% ^/ l% ]% N - sslen (sslength sstxt)( K* ?1 n, u* A2 s. C. r f" E8 c2 b
- ctr 0 )* e+ u5 i# B# B1 h
- (command ".undo" "mark")
& M, t5 ~$ `( X' C6 S* @. }) k2 V - (while (< ctr sslen), s; L9 @# C, k S: R/ E
- (setq listxt (entget (ssname sstxt ctr))* }5 T6 ^; P1 ]( a" [, ~/ A) J
- txttxt (cdr (assoc 1 listxt))
$ A# D) j' r- I2 X- t- U: Z - enttxt (cdr (assoc 0 listxt)) ); K& R, r2 k/ j
- (if (= enttxt "TEXT")
0 \3 ~. W, p J: @* w3 @* ^$ J! i - (progn
& k. o7 g T8 E$ { - (setq testxt (substr txttxt 1 3))
7 J1 t( M" { o. i1 k* s: v0 V - (if (or (= testxt "%%u") (= testxt "%%U"))6 I) X. ?( t ]3 C% Q# }
- (setq newtxt (substr txttxt 4))
3 d# \5 Q; J8 h5 l( k2 r" J - (setq newtxt (strcat "%%u" txttxt)) )
# u" N$ v, |& g" v0 K) {6 |+ { - (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
- Y+ S7 X, a: J5 W - (entmod listxt) ) )
+ m" B0 J0 M5 E, i3 Y" _ - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))
" z& C- e: Y; i+ X6 [! H
/ R5 `- L- h: Q) z4 B- ;;; ================ BAT -TAT CHE DO GACH CHAN TEXT =================
3 _, T! j5 M+ _( f7 n - , l4 M X9 I, w: I2 u# q
- (defun c:tob () (setvar "cmdecho" 0)
) k+ q: |0 r: |1 l9 q/ r - (prompt "\nHay chon dong TEXT can gach tren dau ")9 k# n8 v# d7 x( R/ g$ y( ~
- (prompt "\nSelect objects: ")
' A! s( a4 S, c: N - (command "select" "au" pause)
& g. o `7 o. g1 q: t- f - (setq sstxt (ssget "p"): i `! ~$ X5 N8 }
- sslen (sslength sstxt)8 i" D# M- T/ u& T5 H
- ctr 0 )
( |. n2 U$ b/ [- b - (command ".undo" "mark")
6 |0 |7 Z7 T1 v8 r - (while (< ctr sslen)
- B& G' y$ C. E H/ b; g0 y1 J1 m - (setq listxt (entget (ssname sstxt ctr))- }; V; Y) ?: i7 J3 s1 ]" Z
- txttxt (cdr (assoc 1 listxt))' C2 T( f2 j1 p7 i! ~2 r0 _
- enttxt (cdr (assoc 0 listxt)) )
, u+ h9 \" Z+ d* ]* }7 a - (if (= enttxt "TEXT")8 o6 [! Q7 i& J9 S
- (progn
! N- U8 ?7 f, _* E4 Y. ^ r - (setq testxt (substr txttxt 1 3))9 z' k: U2 C' X: I7 a
- (if (or (= testxt "%%o") (= testxt "%%o"))
a$ @( r& N2 U% I, E9 Q; a - (setq newtxt (substr txttxt 4))# S6 t, _( c( F' X* o- q% F6 y$ S9 ~. t
- (setq newtxt (strcat "%%o" txttxt)) )7 ]9 u" E- Y7 K4 y7 B/ X {2 X
- (setq listxt (subst (cons 1 newtxt) (assoc 1 listxt) listxt))
; ~4 _% [5 v. t, v8 h: M( y - (entmod listxt) ) )
/ e1 \0 b2 F1 O# B( N/ t - (setq ctr (1+ ctr)) ) (setvar "cmdecho" 1) (princ))+ m$ F3 m% W7 }' B1 w# x5 g0 y% [, Q
- + B# Q2 g) S# Z) C$ C$ ?8 P
- ;;; ========================== Tim & thay the TEXT ==========================
' U8 ^; ]( p3 U' ^* c) I: K - / S& a* \% r, i
- (defun frstring (str search replace / str1 str2 index find)% n' i( @8 {; R, m' Z' Q7 w
- (setq index 0) (while (<= index (- (strlen str) (strlen search))) (setq index (1+ index))4 ?5 r6 ~1 ~* `4 [ E, d
- (setq find (substr str index (strlen search))) (if (= find search) (progn (setq str1 (substr str 1 (1- index))). @7 z* u2 T9 k3 U' q6 B+ w! x2 i
- (setq str2 (substr str (+ index (strlen search)))) (setq str (strcat str1 replace str2)) ) ) ) (setq str str))
d- g2 g- x: R, d$ ~ - (defun hai (/ dial)
" c: ?! ]; p, Y& d - (setq dial (load_dialog "hai.dcl")) ;;goi dialog
+ D4 N5 ~$ G8 X9 ~: B# O, Z - (if (not (new_dialog "find" Dial)) (exit)) ;;
1 Y) Y0 R- R- j - (mode_tile "find" 2); Tao dau nhac tai hop thoai0 h; h' }' G+ {( X9 ^. M
- (action_tile "find" "(hai1)")6 ^3 L* {7 M$ Z+ g
- (action_tile "replace" "(hai2)")+ k0 A' f1 Z" H& y, G
- (action_tile "cancel" "(done_dialog) (exit)")
+ ]) j4 K' u) m - (start_dialog) # b9 H) G) [3 S/ i+ ]; `# A
- (unload_dialog dial))
8 r, a1 G2 Z" l0 F# D0 M+ J% I - (defun hai1 () (SETQ str1 (get_tile "find")))
% B5 {7 O6 k& x3 R; u" F - (defun hai2 () (SETQ str2 (get_tile "replace")))
- a+ P) Y. Z1 l- A/ J
# \: A* O+ Q+ _+ }2 R) m \1 r- (defun c:TTT (/ a str str1 str2 newstr taphop sodem)
3 g! E/ o1 }. C - (hai)4 t) B2 d2 M) F
- (if (or (null str1) (null str2)) (princ "\nDu lieu khong hop le")) M X9 Y" c# d$ H% O$ E
- (progn
( J' O+ W$ V3 j1 e - (setq taphop (ssget '((0 . "TEXT"))))' {4 b# I% e( Q, l' s5 d
- (setq sodem 0). b- r, v4 l& i$ H
- (if taphop
# \2 c! i6 T2 _9 H. @* T - (progn8 \- V4 @" L% p, P/ [2 k
- (Repeat (sslength taphop)
; i) g: w5 V: _ - (setq a (entget (ssname taphop sodem)))
: [" M: X8 r9 w% p" o - (setq str (cdr (assoc 1 a))), Z$ \4 n5 V. K$ _2 i7 I0 K
- (setq newstr (frstring str str1 str2))
9 X: y0 [, v" t9 r9 W% M - (setq a (subst (cons 1 newstr) (assoc 1 a) a)). O; x3 |7 v [- L6 _' W
- (entmod a); C# J# x9 s: Q+ V! L& K, r: ^
- (setq sodem (1+ sodem)) ) )
4 v+ \$ r, [" {6 {! M! A - (princ "\nNone "TEXT" selected") ) ) ) (setq *error* olderr) (princ))
: B- H3 o" c K4 g& w - 3 a! i1 H! f; O
- ;;;============================= CHTEXSTY.LSP =============================6 |' ?, \1 i, }0 i% G) A1 L% j
2 V; F8 @% x& n( \- (Defun C:TXS () (Setvar "Cmdecho" 0) (Initget 1 "SE ST ")$ a5 @. ~! b4 z1 ^+ \9 }
- (Setq G (Strcase (Substr (Getkword "STyle/<SElection>:")1 2)))
" l, G) y: I: D. g& W+ C5 r - (Cond ((= G "SE") (Setq A (Ssget)) (Setq B (Sslength A))1 g" g, \2 O% R: v" ~
- (Initget 1) (Setq C (Getstring "\nEnter new text style: "))2 K9 n1 C5 h3 \6 P
- (Extang C) (While (> B 0) (Setq B (1- B)) (Setq D (Ssname A B))
9 d- J3 y9 O, ]5 S1 c8 A - (Setq D (Entget D)) (Setq E (Assoc 7 D)) (Setq F (Cons 7 C))7 R. @% g6 O: C" V! g6 Z. ^
- (Setq D (Subst F E D)) (Setq H (Assoc 51 D)) (Setq I (Cons 51 J))
3 C& k6 c# z1 K, b( ~ G - (Entmod (Subst I H D))) (Setq A nil)) ((Or (= G "ST") (= G ""))
$ K' Q! Y7 B! _7 I* H# v - (Initget 1) (Setq A (Strcase (Getstring9 b" J/ n: I/ [2 G7 B: R" b
- "\nEnter text style to change: "))) (Initget 1)5 S( h( f: b" X! E3 X
- (Setq C (Getstring "\nEnter new text style: "))(Setq D (Entnext))
; |- a/ v, z f7 {5 Y& h9 `1 A0 N' H - (Extang C) (While D (Princ ".") (Setq E (Entget D)) (If8 ]2 f8 O3 g/ J1 Z* i o* l0 Z
- (And (= "TEXT" (Cdr (Assoc 0 E))) (= A (Cdr (Assoc 7 E))))7 J! Q! N4 _: u1 U7 n
- (Progn (Setq F (Assoc 7 E)) (Setq G (Cons 7 C))
/ c) a2 v. q; k3 j/ W - (Setq E (Subst G F E)) (Setq H (Assoc 51 E)) (Setq I (Cons 51 J)) `5 x0 m& b7 E2 I2 e
- (Entmod (Subst I H E)))) (Setq D (Entnext D))))) (Princ))! W! m7 f& p- `; F. N
- : ^8 ?* d) \. z' v
- (Defun Extang (A) (Setq A (Tblsearch "STYLE" A))
* K, V5 M8 ^7 v; x: w - (Setq J (Cdr (Assoc 50 A))))6 _0 j C5 v7 m0 m
0 j! B# A+ i5 W2 H- ;;; ============================ DRAW CLOUD =============================9 H [8 R0 M5 n `. V' |
- ; E+ O' w; H* F) G! t+ `; u) l
- (defun CLOUD (/ pt1 pt2 arc1 cnt ss la) (setvar "cmdecho" 0)3 L9 [! @1 V8 }; A1 Q: P/ A1 X4 j
- (prompt "\nVe cloud (may) khong khep kin - Tu khep kin ve diem dau!")
( d) y/ E0 e( A9 t4 s - (setq la (getvar "clayer"))6 M7 c6 U% z4 W U7 r% @
- (command "layer" "m" "cloud" "c" "5" "" "")
' m% K! [, D5 R% l! E0 H# J+ R - (setq pt1 (getpoint "\nEnter first point of Cloud: "))
" R2 W3 R. c, z+ a+ s - (if pt1 (prompt "\nProceed in a COUNTER-CLOCKWISE direction..."))9 @: @3 \( r- R; A3 |; R! T
- (setq cnt 1 ss (ssadd))
1 i" k; p' ^2 J! B) R" y - (while pt1 (setq pt2 (getpoint "\nEnter next point - and close: "))0 S9 f) t" L; g2 @7 z8 ^! c4 N
- (if pt2 (progn (command "arc" pt1 "e" pt2 "r" (/ (distance pt1 pt2) 1.75))
, n1 U% @4 ^) u- H4 @6 ^) x - (if (= cnt 1) (setq arc1 (entlast) cnt 2) (ssadd (entlast) ss)) ))8 D1 z+ o& B& i3 n' d( W0 E( l
- (setq pt1 pt2) ) (setvar "highlight" 0) (if (> (sslength ss) 0)
1 ~* O0 q) A/ e8 q7 }' O - (command "pedit" arc1 "y" "j" ss "" "x"): b: m4 Q2 D) m; w3 j' n& y% ^
- (if arc1 (command "pedit" arc1 "y" "x")) ) (setvar "highlight" 1)( \- q/ K; d$ `/ N7 P
- (command "layer" "s" la "") (setvar "cmdecho" 1) (princ))
' x. }& ]$ d5 A0 Z - (DEFUN C:CLOUD () (CLOUD)) (DEFUN C:CLO () (CLOUD))
3 b: \/ |/ F7 v* I. U. f) k - " K% l& f" D" f1 w
- ;;; ================================ Funtion-Dulieu ========================9 b0 j( C7 |! V) w1 g2 v
- ;;; ================================ Funtion-Dulieu ========================
8 m0 P' |' G/ o6 v - ;;; ================================ Funtion-Dulieu ========================
6 m* m& x7 V, Q
2 k3 j9 x0 x' g" R1 w- (defun ha:nhap (kytu thamso) (princ kytu) (princ thamso) (princ ">: ") (setq key (getint)) (if key (setq thamso key)) (princ thamso) )" a9 g) _* j3 d: o
- (defun ha:thoat () (reinit) (setq Temp "Da thoat khoi chuong trinh")) |) q) W$ y+ v8 _7 V. P3 T( g
- (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))
5 j: f# B# }$ q/ R2 w+ {* U+ d - (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) )
% `, t+ P- G4 v; f - (defun hauon (hauon1 hauon2) (command "fillet" hauon1 hauon2))
. A4 t& X& R. D6 U: Y5 }1 L - (defun init () (setvar "blipmode" 0) (setvar "cmdecho" 0) (setvar "angbase" 0))- N) l2 p: y$ t ~
- (defun reinit () (setvar "cmdecho" 1) (setvar "osmode" 0))
% X _% A, \, [% F - (defun tichvecto (vecto1 vecto2) (apply '+ (mapcar '* vecto1 vecto2)))
8 u7 W7 x* T6 W9 c9 R) x - (defun vectophap (v01 v02 / vectochiphuong) (setq vectochiphuong (mapcar '- v01 v02)) (list (cadr vectochiphuong) (* -1 (car vectochiphuong))))
+ l3 E5 Y, Z0 W; G ]/ w - (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)))
3 o$ s* }# x8 B2 f/ g" h$ K) y - (defun dtr (dtr) (* pi (/ dtr 180.0)))
! E) x1 s$ _, ]: T: @% `$ S4 j |5 ` - (defun rtd (rtd) (* 180.0 (/ rtd pi)))9 { k7 j) d+ @
- E" s/ T& W' s. J! U" u7 Q- ;;;==============================PROGRAME===============================- R$ \7 I1 Q" |" ~& X) n5 }
- ;;;=====================EditDiM Hien Hop Thoai Dep======================( C& M4 Q$ d/ H0 z' ]. B
- ;;;==============================PROGRAME===============================
* B& g- l% \0 }. R5 {. m% w* X; |0 F
: J1 T* [' i4 q$ U0 O- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)
5 n- v' Q1 i% {' @$ y4 Z - ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
: d- X" k" X! y9 ~& h, V; ] - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
/ f+ K7 O: D0 ^$ a - (Setq Oldlis (Entget (Car Chon))- s" |8 U! z; E. C L
- Pt10 (Cdr (Assoc 10 Oldlis))- k( n! C: i7 ~" u; K6 t
- Pt13 (Cdr (Assoc 13 Oldlis))1 E: p/ y4 g9 c" _: Z8 m0 `! {
- Pt14 (Cdr (Assoc 14 Oldlis))& P! \* X# R; I2 C8 A; E0 J
- St (Cdr (Assoc 70 Oldlis))
: I0 v3 g: ]7 L6 Y! k - Dimdefault (Cdr (Assoc 1 Oldlis))
: q0 |7 E6 t' L' H" z7 W9 w - )( j5 q; z# ]5 G
- (Cond( J: ?0 v4 A! [# M+ h0 D; b! P
- ((Or (= 32 St)(= 0 St)(= 160 St))
" F+ D8 s9 j3 d* A4 w - (Progn
. F; ]1 m* h, u1 x' L |( W W - (Setq Ang (Cdr (Assoc 50 Oldlis))
& i7 @8 t, l: h9 F; Z3 g( _$ O - Pt (Polar Pt13 Ang 500)
, m8 P5 b$ s! U. ?/ I3 h - Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt): k( ^( v+ b" m1 l$ L! f: z
- Dis (Rtos (Distance Pt13 Hc))4 g/ c8 U4 O: R# q$ R
- )+ q- ~; S2 R: f6 v
- )
" _* t# \' h: M/ L. D - )
1 `! f, j1 I2 v - ((Or (= 33 St)(= 1 St))7 R7 P/ V# I& H2 O; ]6 ?3 C2 Y
- (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))" F' l/ C/ N+ Y
- );;End Cond
% E7 x y9 a! ^+ i0 O H7 d - (If (= Dimdefault "") (Setq Dimdefault "<>"))
: J' x/ O) A: K- R1 K. R - (Setq Dial (Load_Dialog "Hai.Dcl"))
8 o$ g3 j! @' [0 d |- v - (If (Not (New_Dialog "eddim" Dial)) (Exit))
6 Y$ \2 P9 p' g2 L, R3 ~ - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))6 Y# q& q- I+ {3 j) F
- (Set_Tile "text" Dis))
; m) s: Y! o: b; O8 m3 H - (Set_Tile "ha:edim" Dimdefault)
) N9 v1 U& c( G/ g - (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai& C$ F z% h& `) v k9 h- m
- (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")6 z2 d: }7 G) \3 Q* S6 }
- (Setq State (Start_Dialog))(Unload_Dialog Dial)2 g+ Y: w5 o1 c0 e' k4 M m/ A6 Q
- (If (And Str (= 3 State))
" @, H2 M. P) I6 \- k7 V - (Progn
! I3 S$ O5 f* ]( C( }5 r - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))
* u/ w/ c7 r1 p3 B - )
0 }+ y4 ~/ m) H( K0 ~0 Q - (Defun C:EH (/ Chon Name )
2 W& L9 D n1 k( |% m; U5 @ - (Defun *Error* (Msg)2 X. j+ j. S5 \
- (Princ "\nerror: ")(Princ Msg)(Princ " ")
0 l! y0 T5 y8 ?" u2 q& ^! i - (Start_Dialog)(Unload_Dialog Dial)4 m2 U; |9 \5 k+ \
- (Setq *Error* Olderr)(Princ)7 K5 W$ |3 l& N* ]6 X( d4 N* [
- )
# B0 G9 O9 @. k; m. v- W1 n - (Setq Olderr *Error*)
4 h, y3 `* j) X - (Setq Chon T)% g! V/ T+ ~4 m, {$ q, b
- (While Chon
. W9 o; q! A: m( E - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))$ o8 {( f( P6 b: v* R, O/ G& O
- (If Chon9 [2 L; x3 c3 N$ q' U
- (Progn! _7 U6 X! Y& q
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon)))))
* |: B! P9 c$ r4 ^ - (Cond
# d/ L! L* {" |) {, K - ((= Name "INSERT")(Command "Ddatte" Chon))
6 l/ E7 s0 c, Z - ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon ""))* |, v4 K) I; M+ @# r
- ((= Name "DIMENSION") (Hai_Edim Chon))
' \+ M( H6 s% G- J6 m T - )
3 P9 N' t+ I# d& [ - );End Cond$ g& z6 p; q. C' a# V* K3 @
- );End Progn
/ [1 q" o- b1 y, n) ? - );End While
, t6 C0 f/ F, w, k) g - (Setq Olderr *Error*)(Princ)
& H! m9 R4 T7 N5 Y* I - );End Program( i4 F2 w( a, i1 ?$ u$ ~/ A
u. v0 R9 S+ ^' Z( N" j- ;;;====================DDeditDim=====================, Q8 ?1 A: v6 K" E, H
- ;;;=====================Hai.DCL====================== @" f: b, F; B2 I$ G! W
- ;;;====================DDeditDim=====================0 s: J) W. \- U* Y+ {
- 1 e4 ~( s$ b5 b% L3 X! L
- ;;Dth Edit Text, Dimtex & Attributes(Chu Co Thuoc Tinh)' U, k4 V; J) F' F$ E$ R/ c. a
- ;;Chay Cung Du Lieu.Lsp & Hai.Dcl
- w1 O0 @4 [1 j7 Q2 H% ] - (Defun Hai_Edim (Chon / Dial State Str Oldlis Dimdefault Pt10 Pt13 Pt14 St Ang Dis Pt Hc)
+ v5 a% R& I6 p b - (Setq Oldlis (Entget (Car Chon)); x) w8 y8 q( [' m
- Pt10 (Cdr (Assoc 10 Oldlis)) n) B0 M$ L$ x e1 B* L+ ?
- Pt13 (Cdr (Assoc 13 Oldlis))
- j: u; T: z8 P6 E! i3 d9 c0 d8 M% f - Pt14 (Cdr (Assoc 14 Oldlis))
. u& X" v" q/ z9 v - St (Cdr (Assoc 70 Oldlis))+ v/ n/ e2 `) r0 r% k3 H. I
- Dimdefault (Cdr (Assoc 1 Oldlis))& x! j6 W# a) a; ~3 ]
- )* Z+ [ t8 v4 e* m
- (Cond
# y& Z& b! T) _# Z - ((Or (= 32 St)(= 0 St)(= 160 St))
! ]$ ~' S5 ]) q - (Progn
8 y1 p; K: m% c/ @& l: \$ g; P - (Setq Ang (Cdr (Assoc 50 Oldlis))4 c" Q& R U9 k: B- D
- Pt (Polar Pt13 Ang 500)! D' G! `! P0 c7 S% ~1 }# V
- Hc (Lay_Hinh_Chieu Pt10 Pt13 Pt)
8 v/ }( z& X* }! ~3 M6 C" Z - Dis (Rtos (Distance Pt13 Hc))
* ]4 h4 V2 ]& m8 W9 D/ `# a - )7 e! j' v( q) a9 T) Z6 a$ u* o
- )/ F# N. X& u; X2 v: w( b. C
- )
1 z3 u& F6 z5 }, F - ((Or (= 33 St)(= 1 St))
3 h9 Q0 y# T& c6 Y2 k( H - (Progn(Setq Dis (Rtos (Distance Pt13 Pt14)))))
4 K9 Z% o+ k2 P - );;End Cond- ?/ \6 ]+ W( R
- (If (= Dimdefault "") (Setq Dimdefault "<>"))
/ ^# }+ N1 v, C6 ~# N7 v# A - (Setq Dial (Load_Dialog "Hai.Dcl"))! b* D# L* n6 f6 r/ o9 W q
- (If (Not (New_Dialog "eddim" Dial)) (Exit))
* Q% n6 @8 v8 x; f - (If (Or (= 32 St)(= 0 St)(= 160 St)(= 33 St)(= 1 St))7 w4 c7 i- |, i% `
- (Set_Tile "text" Dis))/ P4 C% k, {: W3 N. O, g, C
- (Set_Tile "ha:edim" Dimdefault); W0 J4 t7 J8 L: m8 ?) r* r. Q# _
- (Mode_Tile "ha:edim" 2); Tao Dau Nhac Tai Hop Thoai
e& K9 F; t, F7 ]* q: { - (Action_Tile "ha:edim" "(Setq Str (Get_Tile \"ha:edim\"))(Done_Dialog 3)")
A, S: F7 @ h6 K- l: k - (Setq State (Start_Dialog))(Unload_Dialog Dial)
r! f3 V) i: M1 Y& Q# k. m; [, V! d - (If (And Str (= 3 State))
' c* t: n2 F- S4 M - (Progn
2 x+ q# U! A% m - (Setq Oldlis (Subst (Cons 1 Str) (Assoc 1 Oldlis) Oldlis))(Entmod Oldlis)))& L' `/ y8 M- s1 o
- )- \/ D0 p+ a! r( G; V
- (Defun C:EH (/ Chon Name )
" H& `$ v8 o0 M5 N/ y5 {/ v
% R2 V8 g4 B9 x+ _- ;;;********************Du Lieu********************
" y* q8 i/ q$ v - ) O6 R" }* p( x" m- t
- (Defun Ha:Thoat () (Reinit) (Setq Temp "Da Thoat Khoi Chuong Trinh"))# ?0 c2 s' p/ E4 L5 ]1 {
- (Defun Hacat (Hacat1 Hacat2 / Hacat3 Chon)
+ @% ~2 Q( |( z( r( `9 [; A# i" [ - (If (And (/= Hacat1 Nil) (/= Hacat2 Nil))! E+ j3 {" O3 y! U* Y2 |
- (Progn& p8 B) |, I8 }2 y& Z# c' C( l$ E
- (Setq Hacat3 (Polar Hacat1 (Angle Hacat1 Hacat2) (/ (Distance Hacat1 Hacat2) 2)))
. q, H7 b/ `# ]6 B5 M - (Setq Chon (Ssget Hacat3))
0 D% M, s* H4 c# c/ m9 z - (Command "Break" Chon Hacat1 Hacat2)
9 I6 R, i1 z$ A* P" L: |! F, m - )
# H7 T, U3 v+ c7 v3 ^ - )- p5 d& d! U' l: r; U
- (Princ)" ?* g1 P6 c- D
- )
. K' D, k5 A( S8 r' C; N - ;;5 L S" C- w7 T% R4 `
- (Defun Hauon (Hauon1 Hauon2)(Command "Fillet" Hauon1 Hauon2))6 N E: x" w, h+ w7 K* u t
- ;;6 A3 i/ h# [9 [) T& B& [
- (Defun Taolop (Mau Lop / A)(Setq A(Tblsearch "Layer" Lop))(If (Null A)(Command "Layer" "_N" Lop "_C" Mau Lop "")) (Setvar "Clayer" Lop))6 ]0 y5 g: M' r
- ;;/ E' L& U2 a% [0 d1 j, B% @, |
- (Defun Init ()(Setvar "Blipmode" 0)(Setvar "Cmdecho" 0)(Setvar "Angbase" 0))
0 u4 g2 Y6 y/ E6 \/ } m! T - ;;
9 k/ N# v9 Z. T9 U/ ]3 j1 } - (Defun Reinit ()(Setvar "Cmdecho" 1))
0 N6 L/ o' e1 a7 C' k( V- c - ;;
( E, a0 o+ G, j- T$ O7 J - (Defun Tichvecto (Vecto1 Vecto2)(Apply '+ (Mapcar '* Vecto1 Vecto2)))
# O7 C* X+ ]! L* v1 _( x, ?* v - ;;5 W6 y6 U' |$ Y, |
- ;;Cho 2 Diem Tinh Ra Vec To Phap
" @ ?% ?: A/ X) M - (Defun Vectophap (V01 V02 / Vectochiphuong)(Setq Vectochiphuong(Mapcar '- V01 V02)) (List (Cadr Vectochiphuong) (* -1 (Car Vectochiphuong))))* j+ r7 m* N) J E' [: f5 B0 V* P
- ;;Xac Dinh Vi Tri Hinh Chieu 1 Diem Len 1 Duong Thang& A% A2 f6 z# l, J; e" Q5 R
- ;;Da Biet 2 Diem Thuoc Duong Thang& Y$ ^9 J0 `2 E: w2 J: M
- (Defun Lay_Hinh_Chieu (Dc1 P1 P2 / Hc Dc2). }/ N* H- v( _, [
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100), `( b! P' S5 C& }
- Hc (Inters P1 P2 Dc1 Dc2 Nil)))6 y6 T1 ]4 d1 T$ I( I$ i/ L& [
- ;;Xac Dinh Khoang Cach Tu 1 Diem Len 1 Duong Thang' h9 G$ S0 V" r) r! m; Z% I5 A
- ;;Da Biet 2 Diem Thuoc Duong Thang
" |* d6 o1 N8 @( l - (Defun Khoangcach (Dc1 P1 P2 / Dc2 Hc)+ i- J$ |0 \3 F$ i( O5 E/ p$ x' T
- (Setq Dc2 (Polar Dc1 (+ (/ Pi 2) (Angle P1 P2)) 100)
4 ]3 j7 K% o8 M - Hc (Inters P1 P2 Dc1 Dc2 Nil))5 [' ~9 G/ o1 Y3 n% X
- (Distance Dc1 Hc)/ U* \3 I1 c. y
- ). a( @; Y X6 c, m- s, P( m. z
- (load "nhapcua.lsp")
@9 d0 H5 w. V+ w' [ - (Defun *Error* (Msg)
8 o! C0 b* m& d" j$ I7 e6 w. T - (Princ "\nerror: ")(Princ Msg)(Princ " ")7 l: v. M( R0 h/ R. `
- (Start_Dialog)(Unload_Dialog Dial)% a6 x' I2 D! D$ \3 Z
- (Setq *Error* Olderr)(Princ)( u" m/ Y8 i; j
- )
7 @' f5 `1 }5 `8 P+ K& Y7 {, A - (Setq Olderr *Error*)
3 r6 `/ D. w' P, k8 J+ z) ] - (Setq Chon T)$ `. K; ~2 n1 E+ s' X4 L" A, S
- (While Chon
' G- ^) ]' I4 K* _ - (Setq Chon (Entsel "\n\n\nSelect Text, Dimtext Or Attributes To Edit..."))
9 f; ]. f4 C8 U - (If Chon
# W: L# F1 W9 I - (Progn. u8 b% D9 ?% F3 A! _
- (Setq Name (Cdr (Assoc 0 (Entget (Car Chon))))); E% W( k! a6 d
- (Cond
; _: _% O1 g; M! U, C0 h9 w - ((= Name "INSERT")(Command "Ddatte" Chon))& C2 W- v0 d0 x3 @2 n2 ]! r
- ((Or (= Name "TEXT") (= Name "ATTDEF") (= Name "TOLERANCE") (= Name "MTEXT"))(Command "Ddedit" Chon "")); W6 Z r' W2 N1 y
- ((= Name "DIMENSION") (Hai_Edim Chon))8 s8 }: t9 J8 M1 Z! D; J9 K: n
- )0 b/ X/ v N k) @1 L3 o! W. p; _& l1 x7 ?
- );End Cond
* y6 q# E3 o y% {9 T6 ` - );End Progn
: Z5 R; ]# g& ^! [ - );End While
& b( c# |, h0 r! ?- V4 n4 [& E" z - (Setq Olderr *Error*)(Princ)' n; ]: I" Q, q. X* g$ U+ p: Q
- );End Program1 _) H3 q9 X8 K0 R8 a" m
+ z; F' J% y6 q2 _) k* I& c4 Y I- ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
0 r1 v0 y$ O, X1 k - ;====================================Nhapcua.LSP====================================
, [2 u- M3 P2 D- h/ C - ;===================HAI DCL Nhapcua.LSP De chay Hop Thoai EditDiM===================
1 k+ A; E+ W* U. Z" S g - : V& u% `4 P! @" _+ u
- , @ R$ _+ R* `
- 2 E3 W. `. j6 v6 b5 w- \' i* G) |" q
- ;*******************;*******************;*******************;*******************
O* G& B, H- t7 _& I. x; h - ;****K E T C A U****;****K E T C A U****;****K E T C A U****;****K E T C A U****8 g& g4 c* \. Y3 t/ A t
- ;*******************;*******************;*******************;*******************
* J X1 _. H- F% w$ v# Q# y b
; X' B# ? `, { ~/ B- ;VE HINH BINH HANH) T! D5 C3 A" c6 J
7 }0 i, i- P9 C- K7 W- (defun c:binhhanh (/ p1 p2 p3)! k% V }7 n/ P, S; m0 D3 Z
- (setq p1 (getpoint "\n Nhap diem thu nhat:"))8 {- l' V1 F5 c% X# I) N4 v
- (setq p2 (getpoint p1 "\n Nhap diem thu hai:"))
: m% K9 ]+ c; P. u: u! W - (setq om (getvar "osmode"))* X; s1 P& v, r$ M) _
- (setvar "osmode" 0)- I3 M8 e( c7 F4 C
- (command "line" p1 p2 "")
6 Q: P% g8 h1 E: P - (setvar "osmode" om)
: y% g5 E# }( W5 e: I - (setq p3 (getpoint p2 "\n Nhap diem thu ba:"))
- i# F3 X. ] L& }% C# v - (setq a (angle p2 p1))7 z ?+ N% _" J. C1 |
- (setq d (distance p1 p2))
7 e3 @ L9 `* Y" t( p: f! c& \* G - (setq p4 (polar p3 a d))
, D. S8 K% r- \$ C$ V; v4 n4 ^3 O - (command "OSNAP" "none")
4 k; o+ C: Y$ ]6 @! |8 n5 R/ {% L0 {0 V0 c - (command "erase" "l" ""); u+ k5 h; f9 F- k
- (command "pline" p1 p2 p3 p4 p1 "")9 D) t; S; t$ E! t6 Q
- (setvar "osmode" om)1 V) m1 D, X% `+ o% k) @( } \- q5 V
- )
1 T8 D. Y0 S0 n# s- g0 N' u - 3 S7 `( m6 S# u" V8 E2 ]8 S
- ;VE LUOI COT
' p$ }) ~, {1 }, T. V2 f
$ t! L: j G" [& y- (defun c:LuoiCot () t: V f- n9 G: o* n
- (setq om (getvar "osmode"))
/ q$ m" {4 Q" q \( X+ C- o- n - (setvar "osmode" 0)
2 a) L& J9 U% | - (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))
6 K6 D# o# E* I, v0 w/ E - (setq p0 (getpoint "\n Chon Basic Point:"))7 I G" \8 G: j5 U
- (setq nc (getreal "\n Nhap chieu ngang cua cot : "))9 R" `2 R7 Y) _
- (setq dc (getreal "\n Nhap chieu doc cua cot : "))0 A5 z' n1 a( M1 p9 K) V s
- (setq p1 (polar (polar p0 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )( j; {9 A5 G6 k1 R$ c
- (setq p2 (polar (polar p0 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )
/ a- E" b+ h5 m/ y* Z4 i6 j" \. S - (command "rectang" p1 p2)1 v2 ^$ _; c- c+ f* d! ^
- (command "hatch" "solid" "l" "")
, g J3 n4 F l5 f5 s- Q6 R/ A5 g0 W) G - (setq bcn (getreal "\n Buoc cot theo phuong ngang : ")): E6 ^7 A/ C, R4 `! x, D7 o
- (setq nn (getint "\n So buoc cot phuong ngang : "))0 i7 F- s+ A+ Z' b7 ~ l/ G; j
- (setq w1 (polar (polar p1 pi (/ (* nc hstl) 2 tile) ) (* pi 1.5) (/ (* dc hstl) 2 tile) ) )' x9 W" o4 \+ P/ o
- (setq w2 (polar (polar p2 0 (/ (* nc hstl) 2 tile) ) (* pi 0.5) (/ (* dc hstl) 2 tile) ) )) V6 W6 N. F5 j8 Q9 {2 \1 I
- (command "select" "w" w1 w2 "")7 e9 y3 b+ [, ^5 y3 y& Q D
- (command "array" "p" "" "r" "1" (+ nn 1) (/ (* bcn hstl) tile) )
7 r/ H/ e. ^& m1 ~. V7 U - (command "line" (polar p0 pi (/ (* 1000 hstl) tile)) (polar p0 0 (/ (* (+ (* bcn nn) 1000) hstl) tile) ) "")4 U( b Y& [2 k" |
- (setq w1 (polar (polar p0 pi (/ (* hstl 2000) tile)) (* pi 1.5) (/ (* hstl 2000) tile) ))7 W0 S, l* W e0 I8 \
- (setq w2 (polar (polar p0 0 (/ (* (+ (* bcn nn) 2000) hstl) tile) ) (* pi 0.5) (/ (* hstl 2000) tile) ))6 q3 w7 v0 h+ M$ e, b9 z5 n+ q
- (command "zoom" "w" w1 w2)
9 G, q) X* t& L& M) a) m! @ - (command "select" "w" w1 w2 "")4 O4 b0 m$ ^2 d; h8 R
- (setq bcd (getreal "\n Buoc cot theo phuong doc : "))
; e' _% F+ E! N1 ?6 @ - (setq nd (getint "\n So buoc cot phuong doc : "))6 |) h% M& ?7 k6 v
- (command "array" "p" "" "r" (+ nd 1) "1" (/ (* hstl bcd) tile) )1 D3 v- v5 f) I7 o ~3 c+ |
- (command "line" (polar p0 (* pi 1.5) (/ (* hstl 1000) tile)) (polar p0 (* pi 0.5) (/ (* (+ (* bcd nd) 1000) hstl) tile)) "")
; A0 h& t9 T4 }/ H& P - (command "array" "l" "" "r" "1" (+ nn 1) (/ (* hstl bcn) tile) )
' b: E8 v% g% w- ? - (setq w2 (polar w2 (* pi 0.5) (/ (* (+ (* bcd nd) 2000) hstl) tile)) ) : u% }9 F B4 e- }5 M5 |4 J, W3 Z' O
- (command "zoom" "w" w1 w2)3 _" J8 Z5 w7 O2 j3 J
- (setvar "osmode" om)
5 g: U* s- r9 Z8 z - )
# p3 X& O" y: I/ w$ R
7 F3 M' A5 Y2 o8 c4 p- ;VE CUA DI# b ~; z4 h0 q! }/ g4 ~ s3 s
" V3 o- k" {+ L- (defun c:cuadi ()6 T. Y, ? `' G2 N
- (setq om (getvar "osmode"))
( T# `0 M6 n" J - (setvar "osmode" 0)
" |4 M: C" d/ D7 A3 \: t' c# W - $ g7 d+ ?! ?* C- K0 ^, f8 ]; o- m
- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))# H/ J, N! R$ f, z. N, [. p
- (setq b (getreal "\n Nhap be rong cua : ")) {! ], N) K! T5 J/ j
- (setvar "osmode" om)0 X9 F. P: E. g7 g
- (while (< 0 1)
$ O, C4 a& w; I6 G5 C4 \ - (progn* {* Q; O: a* v& L4 f
- (setq p0 (getpoint "\n Chon Basic Point:"))
* A+ t+ C9 w8 b$ e8 D. Y - (setq p1 (getpoint p0 "\n Chon diem de xac dinh huong cua cua:"))8 J6 }4 g5 U/ F0 X: q4 W0 i
- (command "osnap" "none")' g5 E9 b- C1 t: ~
- (setq p2 (getpoint p0 "\n Chon diem de xac dinh huong mo cua:"))
H5 u. X+ R( } }, {& ~ - (setq a1 (angle p0 p1))
& l! R; ?' X, |6 ^( J0 P - (setq p1 (polar p0 a1 (/ (* hstl b) tile)))
4 o( F# X" v3 N1 W* } - (setq a2 (angle p0 p2))
: g* D) |9 Y* _* c( L- h7 m: h4 @2 S9 B - (if (< (- a2 a1) pi) (setq a3 (+ (/ pi 2) a1)) (setq a3 (- a1 (/ pi 2))) )
; M: v* `# F; i$ d" ? - (command "pline" p0 "w" "0" "0" p1 (polar p1 a3 (/ (* hstl 40) tile)) (polar p0 a3 (/ (* hstl 40) tile)) p0 "")
% i% f0 ]5 s& y( v - (command "rotate" "l" "" p0 (/ (* (- a3 a1) 180) pi))& P$ h8 z1 ]% X! G7 g) M0 {
- (command "arc" "ce" p0 p1 "a" (/ (* (- a3 a1) 180) pi))
+ ^7 B' _# ~) Q% I' Y- R - (setvar "osmode" om)
8 f4 `2 }7 e) l+ s - ))6 s, d: i3 J+ ]
- ), i6 y& }5 m L9 h6 R9 J
- 1 B; Q5 T2 l5 G* Q1 U( b7 e7 i
- ;VE CUA SO
$ l) y* ~; k7 {3 m' E4 ^5 m
8 A5 W6 |5 _5 \- (defun c:cuaso ()
. Y F$ U* D; F! y0 ?6 d7 q4 l - (setq om (getvar "osmode"))7 W' n- F4 M/ \- t7 @8 O
- (setvar "osmode" 0)( M+ W: I/ h+ t6 x
3 ?3 z, A5 D! ]# Z% ?% k- (setq tile (getreal "\nCho biet Ti Le ve 1/x, x="))! |- I; [) r/ y6 m9 M
- (setvar "osmode" om); C5 K0 u) e, [" M3 Y9 s; P# ]$ t6 ?
- (while (< 0 1)
9 m0 s; N, ]; i0 `9 j @ - (progn
; S3 p9 d4 C# W3 I! Z' g6 l - (setq p0 (getpoint "\n Chon Basic Point:"))& p1 Y t: H2 M {, j5 n5 k8 P, n
- (setq p1 (getpoint p0 "\n Chon diem de xac dinh be rong cua:"))" V) W7 z8 a+ }! C! c' c9 O% X
- (command "osnap" "none")4 ~* [6 O7 l9 m8 p5 k' R
- (setq p2 (getpoint p1 "\n Chon 1 diem o trong nha de xac dinh huong cua so:"))
9 s9 Y: N; _0 _- ` - (setq b (distance p0 p1))7 z% F& n$ b( t- G1 X# I
- (if (< b (/ (* hstl 600) tile)) (setq du 50))! a- c% H4 W4 N8 j
- (if (> b (/ (* hstl 600) tile)) (setq du 150))
W; \1 r7 g' Q7 w - (if (> b (/ (* hstl 1800) tile)) (setq du 200))
7 @' Z2 k* U$ a5 N. \ - (setq a1 (angle p0 p1))2 W" T; I L, p2 x
- (setq a2 (angle p0 p2))
' K/ a3 F, y4 b p - (if (> a2 pi) (setq a2 (- a2 (* pi 2)) ) )
1 N/ z8 M) E. j/ n: u7 B ^- Y - (if (> (- a2 a1) 0) (setq a3 (+ (/ pi 2) a1)) )
3 N8 L& D/ D" P. U1 X9 v0 ]* H6 r - (if (> (- a1 a2) 0) (setq a3 (- a1 (/ pi 2))) ): B$ v% P2 P) y9 D
- (command "pline" p0 "w" "0" "0" p1 "")
2 X2 s2 C$ s. S8 g8 S - (command "pline" (polar p0 a3 (/ (* hstl 50) tile)) (polar p1 a3 (/ (* hstl 50) tile)) "")
4 n. v) r/ ?8 T, \5 q# S - (command "pline" (polar p0 a3 (/ (* hstl 100) tile)) (polar p1 a3 (/ (* hstl 100) tile)) "")/ L; o% n* p Z- F
- (command "pline" (polar p0 a1 (* (- du) (/ hstl tile))) (polar (polar p0 a1 (* (- du) (/ hstl tile))) a3 (* -100 (/ hstl tile)))
' {3 @# P1 u2 y3 B - (polar (polar p1 a1 (* du (/ hstl tile))) a3 (* -100 (/ hstl tile))) (polar p1 a1 (* du (/ hstl tile))) "")& C3 r2 ?+ t5 P& _7 V
- (setvar "osmode" om)
( _, E/ U/ m+ ?3 } - ))9 w& l2 G' U: \! |
- )! h; O' Q9 n0 o7 R* j' w
1 [$ V! G$ i) H, `6 C6 L+ n% [- ;;;=== General Utility Functions ===3 e1 G% y" ?8 k: p. j s
% l0 J( z R' v8 [0 {- ; R12 compatibility - In R12 (acad_helpdlg) was an externally-defined - X! J, N* y0 b3 M
- ; ADS function. Now it's a simple AutoLISP function that calls the 1 G. U& y. d8 z- d7 H
- ; built-in function (help). It's only purpose is R12 compatibility.
9 R& f- G5 k2 t' l- r; g8 w% \ - ; If you are calling it for anything else, you should almost certainly 3 D, G, v2 |, e/ N+ p" Q g
- ; be calling (help) instead. ; o& x" Y1 a! S" h
-
$ s8 A# Y/ f; K - (defun acad_helpdlg (helpfile topic)
/ `8 [: d$ q8 F7 t/ m - (help helpfile topic); M) i2 ^- c: o9 f" k, \
- )
( Y+ d5 v5 c" m# s$ s8 L R% U
' d& j+ ?' M& U( e6 b: G7 L- ' Q0 t3 n& G( U, Y# r. e
- (defun *merr* (msg)& M2 c' s$ Y0 r
- (setq *error* m:err m:err nil)
* [9 I/ }% C: G X& [9 O4 c6 K4 y - (princ)
# f% {: G; B3 x - ), G8 U* {5 C& J$ ~0 T8 i& k
E- X8 j( ?/ D& c0 ]& A& o) r- (defun *merrmsg* (msg); R7 R8 N1 x! P0 t/ ]# |1 s" P
- (princ msg)
" Z3 M1 b2 Q, r: H8 b+ s- A6 ` - (setq *error* m:err m:err nil). n+ G3 k6 j4 \ n1 d& d+ _( q
- (princ)1 U2 ~. g3 ^0 w
- )
. y& U0 J: C. H7 k - + F1 O! X9 ^" N4 D9 A- b, N
- ;; Loads the indicated ARX app if it isn't already loaded* x8 ?( v, b) v8 d+ @+ W
- ;; returns nil if no load was necessary, else returns the
3 \; c$ @( \5 ~2 Z) D. Q% g - ;; app name if a load occurred.$ ]3 J2 A( k; s- L
- (defun verify_arxapp_loaded (app)
' }0 ?& h# l V, ^ - (if (not (loadedp app (arx)))
. q7 R/ [7 z6 p# n5 h! S6 L - (arxload app f)9 V+ d' q' p+ y; O5 R0 n1 P
- )
( t3 `& S7 U* L - )
5 V) a2 r: o( X9 a! ^* r) ^ - " G! U: a% M# v) l# F( W
- ;; determines if a given application is loaded...+ L- S9 g9 ~$ L
- ;; general purpose: can ostensibly be used for appsets (arx) or (ads) or....
" z0 P: k) g) a6 D, Q - ;;
2 h5 O6 k) Z" J1 V4 ~/ |% ^ - ;; app is the filename of the application to check (extension is required)0 c8 J$ M) v$ ~( O+ f1 I6 G5 A# }
- ;; appset is a list of applications, (such as (arx) or (ads). j2 E: I) B' f! S& x4 W
- ;; ^8 b0 y: n" Z) m/ `/ l' j# W8 F$ g5 R4 A
- ;; returns T or nil, depending on whether app is present in the appset; E$ g( p" G7 S0 p* m! B: I
- ;; indicated. Case is ignored in comparison, so "foo.arx" matches "FOO.ARX"
9 S! z; O* ]& o$ b' C0 j$ t$ M - ;; Also, if appset contains members that contain paths, app will right-match
6 S: Y6 a7 H+ _ U" T - ;; against these members, so "bar.arx" matches "c:\\path\\bar.arx"; note that
( e9 `0 k& K; R4 P - ;; "bar.arx" will *not* match "c:\\path\\foobar.arx."
3 r: S$ X( h) b d: k - (defun loadedp (app appset)
5 J* p% M/ g7 r; U$ g! V: R - (cond (appset (or 1 ~, I6 A9 v9 t6 R& Q1 ^& B% g4 ?
- ;; exactly equal? (ignoring case)# r5 S7 d" n0 z- Z. L3 h3 e
- (= (strcase (car appset)); S1 q) \2 t6 H% @8 R ]' I
- (strcase app))
- }# x% D1 y) V - ;; right-matching? (ignoring case, but assuming that
5 m3 J9 Y3 Q, \, l6 H Y - ;; it's a complete filename (with a backslash before it)
# W2 C& _- x" |5 b$ b0 W7 S - (and
# @* s8 b7 S4 U" m# V3 d - (> (strlen (car appset)) (strlen app))5 j* n% |7 r n* B( P8 p# X, j# q) q
- (= (strcase (substr (car appset) ) _2 p5 g) A& C) b) _$ |$ m
- (- (strlen (car appset)) 4 c* |% a e/ U' E( A( |
- (strlen app) % A% O. h1 \2 O# Q) J
- )
7 V/ A$ q4 o0 g& n. m! m - )
1 R: G5 U( S) P! K& e! Y - )
$ u( F9 }+ c& h# |& ]1 x - (strcase (strcat "\\" app))
3 W1 H4 V' J- r* ~2 c& Z - )- _! G/ H, ]9 n- @( P2 u, M
- )
" J) O8 `" N4 }" T- g8 ` - ;; no match for this entry in appset, try next one....: q' J' M# O' B9 H0 z R
- (loadedp app (cdr appset)) )))% @- P" I$ ~( ]4 r0 ?! Q2 R8 ]
- )
9 t6 b- R2 T9 U8 C' C( U
9 T: d$ v5 W) p0 r$ j$ _! D, V/ a8 U
: Q2 ^2 }( K9 k! f0 V- ;;; ===== Single-line MText editor =====& I" \* l/ ?) n; C6 G- s" }
- (defun LispEd (contents / fname dcl state)
4 F: J8 M7 D. K6 ?5 i - (if (not (setq fname (getvar "program")))
8 h$ f0 [! F2 T - (setq fname "acad")
- K( |5 i* H7 f; m! S: V - )
3 a' M; I6 A7 r) d - (strcat fname ".dcl")
! U9 A" k) F" y. R% v# Q/ a& O% h - (setq dcl (load_dialog fname))
$ [9 X3 A- a3 r( F - (if (not (new_dialog "LispEd" dcl)) (exit))' I6 O" b6 S& g: Q$ a i
- (set_tile "contents" contents)
3 D _) f; ` s: } - (mode_tile "contents" 2)' b# Z; E0 a$ r
- (action_tile "contents" "(setq contents $value)")
: @) u K. t4 Q- a0 K. Z* ~% ^ - (action_tile "accept" "(done_dialog 1)")/ ]# z9 z$ d* i5 Z4 p2 \3 e
- (action_tile "mtexted" "(done_dialog 2)" )5 i% t: A2 o/ m; ]+ m
- (setq state (start_dialog))3 H, P' e0 @' Q4 M% |- ~* N
- (unload_dialog dcl). q, n- a) {) f
- (cond
! I' ]" N" q0 r$ }" a, S9 U - ((= state 1) contents)
4 u7 }7 ^: n+ P6 N - ((= state 2) -1)5 I$ B3 N' Z! g) l+ S+ b# k
- (t 0)
, L! z; o& _8 n2 l( j9 s; H - )7 `6 @" K. |# Y; ?' W L6 F/ G( k
- )
% i# d7 H8 a& e$ E& o& G( ^7 N1 s - . v2 w6 E. E6 G$ Z% C( a
- ;;; ===== Discontinued commands =====; `) ?+ n7 A6 n4 ]" o- [% g
- (defun c:ddselect(/ cmdecho-save)
+ f. c; W& k9 W# Z) ` - (setq cmdecho-save (getvar "CMDECHO"))
" c3 @4 s3 c8 h, l; T% y - (setvar "CMDECHO" 0)" s/ }1 S6 I% j4 ~1 T) R
- (command "._+options" 7)
- |) m7 C% L D" @- W8 R) M6 Z, Z - (setvar "CMDECHO" cmdecho-save)
7 }1 C# z, \+ f - (princ)
" k" m; w" d, Y - )
1 D; B+ T m+ t ] E* G* ]( N
, j2 u( y: [4 S- @. ?! [) s/ Y- (defun c:ddgrips(/ cmdecho-save)& s# q: [+ X0 w. p7 I- l
- (setq cmdecho-save (getvar "CMDECHO"))
$ v1 L3 h7 B; \. ^ - (setvar "CMDECHO" 0). H, T* |$ D0 j. E4 U
- (command "._+options" 7)* C3 m3 X9 w+ j) ~4 e$ j
- (setvar "CMDECHO" cmdecho-save)
% M$ {. H& s; |$ ?" D+ } - (princ)
1 f. ]7 d) H$ O1 N - )
$ d) F/ C" f9 G. Z& d6 g! B% C- _
) c( B& _! S ?6 t* V- (defun c:gifin ()
+ X" c- K/ y+ n. K2 ~! _ - (alert "\nThe GIFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
. T; g7 }7 i" F2 K - (princ)+ W; l- Y2 k) L1 W0 g& l' l
- )
( ?: Z1 ^4 P& _1 J
7 `5 {4 {' n' a/ ^( n3 h- (defun c:pcxin ()8 e7 |# `) T: p. m1 C
- (alert "\nThe PCXIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")
# R0 @5 Q" c& e* _5 \# X. Z, M - (princ)% D, Z2 q- m H/ C3 a% d6 B; ^* }& g
- )% V9 a1 G" N6 h4 Z
/ ]1 ~( l3 o. e9 h- (defun c:tiffin ()
& G5 J# ]. O8 o - (alert "\nThe TIFFIN command is no longer supported.\nUse the IMAGE command to attach raster image files.\n")% t5 F; |5 @" M2 V
- (princ)/ a1 L( l$ i: }
- )
0 ?5 r; B( z. Z - 5 V3 B# N8 Y% l. f# X. e, W: O/ V# {
- (defun c:ddemodes(). z: K+ |6 @0 C5 C
- (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.")
, l5 N2 Z4 I$ c# M5 j - (princ)0 I2 [) P# f4 V' T4 V" a
- )
% |. u- N) N: a0 |% ]
, o3 f! B* ^ M, A$ ^* i+ H) N& T- (defun c:ddrmodes(/ cmdecho-save)
$ m& P( t6 x1 x - (setq cmdecho-save (getvar "CMDECHO")) D" P2 \- s- h# Z: x0 O
- (setvar "CMDECHO" 0)& b7 N8 K; v. K2 ]" v6 ]' ~
- (command "._+dsettings" 0)" O) {: i) u5 t7 U, u
- (setvar "CMDECHO" cmdecho-save)/ M: ~# F |: V5 @' z" q0 v+ t
- (princ)" |" z0 i1 O2 s* [5 C
- )7 \ M* s# ~0 w$ ?
- $ Z: [* z6 C6 p5 S/ [& r
- ;; HPCONFIG# n. O4 N% w: f
- (defun c:hpconfig (/ hlppath)
+ J8 N6 u& ` j! J. s, H, X t2 N - (if (not (setq hlppath (findfile "acad.hlp")))+ U" S- n+ B4 S" N5 h
- (setq hlppath ""))
9 I0 P; W; Q+ h$ G$ @3 O3 ~1 n5 R - (help hlppath "hpconfig")
1 _# [3 |. v2 p6 B - (princ)+ \# n G8 C4 ]4 G) W/ M: O$ o1 _
- )( B7 G( P) z* e: C
; D5 N% a- ~: k! y5 G5 t- ;; OCECONFIG2 Q9 r9 r/ }- C3 q: e1 s4 @" |
- (defun c:oceconfig (/ hlppath)% a9 {7 y$ r9 q- q+ n3 ^) c N. F3 y
- (if (not (setq hlppath (findfile "acad.hlp")))8 X: W! P2 C, n; q( O- H
- (setq hlppath ""))
' _5 p7 k0 }5 H/ g, y, g. J) A - (help hlppath "oceconfig")
1 t4 {( _ i% | ^( V0 D - (princ)( l5 Q3 ^( S% k* o" S T, s" g
- )
# f7 S, G* E/ A2 t0 Y2 `4 m5 k; F! n - 2 z ]4 a/ R8 h5 L
- ;; CCONFIG0 M e1 L2 W) X5 J u' a' C% Q7 Z
- (defun c:cconfig (/ hlppath)
- Z3 P" z }: b: h8 k0 Q5 ~ - (if (not (setq hlppath (findfile "acad.hlp")))
5 S; _# K6 w$ W( e a4 k1 T - (setq hlppath ""))
6 u5 v6 r' P& q- Z) u4 }4 u8 q) i! V - (help hlppath "cconfig")
" J" \) [+ O) D5 y - (princ)9 ~5 _% T* {: ?# f# K
- )
^8 g- S+ P) Y! K8 J
g% e; ^: o5 d; V3 b- ;;; ===== AutoLoad =====
; y: z1 u" o! |
6 {8 w4 z, ^3 \# n$ B x' [- ;;; Check list of loaded <apptype> applications ("ads" or "arx")+ n/ {+ k2 l; Q Y
- ;;; for the name of a certain appplication <appname>.
" ^7 a" e* A- P/ Q1 _ - ;;; Returns T if <appname> is loaded. E* G1 v1 m, i) {7 ]% m5 e- a y
/ C! n, x% ~7 [4 f! { B8 I$ u- (defun ai_AppLoaded (appname apptype)
% d7 F) c. O3 S+ t* }; @! F( J1 S+ x - (apply 'or
9 V. S& c2 X9 U/ R! ]! u! g - (mapcar
. L! C4 a! t' J0 Y - '(lambda (j)
% v' O8 G1 U, Q& v, v' u; { - (wcmatch" U9 i, l9 _- U$ T0 w/ n P
- (strcase j T)
# O# B) I; P+ ]8 B/ z - (strcase (strcat "*" appname "*") T)* i6 p/ L! B6 k: D, ~
- )
& Q! q( a0 [4 K7 m _, M6 \ - )
: A9 H; n$ P6 }, q% Q# G( F - (eval (list (read apptype)))$ P' d# ?0 e' q' n
- )) u; @6 R+ P4 K+ R% d3 W
- )
* D1 i1 Z& h* l - )" r. `( {. B) [- z8 T; u
- - U9 u0 \. {/ M% S
- ;; / J0 m# V- S" p4 E7 G
- ;; Native Rx commands cannot be called with the "C:" syntax. They must
2 v! y% _$ U5 o: `: O - ;; be called via (command). Therefore they require their own autoload 7 u7 q# s2 w8 s, Y; \ [6 h
- ;; command.* u) c1 O& V8 \! c7 F e9 B; t/ y
+ J, y$ E: P; [3 d( y; s B- (defun autonativeload (app cmdliste / qapp)) u9 a. V2 ]7 r' m, x
- (setq qapp (strcat "\"" app "\""))
- T0 Y/ {* K& X: T - (setq initstring "\nInitializing...")
* h4 |3 }: h4 E* [$ A - (mapcar
% n# k8 E$ Z1 D2 B" m( T& U) p - '(lambda (cmd / nom_cmd native_cmd)
: N# ?$ ?# \9 B - (progn
/ C7 E3 G" G9 O: t! I o - (setq nom_cmd (strcat "C:" cmd))
' M% f- @5 }+ B* q4 d& J - (setq native_cmd (strcat "\"_" cmd "\""))
8 S6 O6 X% X: ~. f1 |% Q4 E - (if (not (eval (read nom_cmd)))
% o& I5 e9 ^. } - (eval
3 e# J' a7 `( f - (read (strcat
" \; n0 k# T2 l7 u' J - "(defun " nom_cmd "()"
" @0 w, E7 g# r6 z1 H3 [ - "(setq m:err *error* *error* *merrmsg*)"; m* u! w; S9 U, I
- "(if (ai_ffile " qapp ")"
+ [# S L+ c( ~# V - "(progn (princ initstring)"& ~! N4 E* V, q
- "(_autoarxload " qapp ") (command " native_cmd "))"
3 k! n+ v V% J1 P* e; e8 r4 s - "(ai_nofile " qapp "))"
: e) Q! k, c+ x; n: f! J& w0 Q - "(setq *error* m:err m:err nil))"$ C2 R' a3 }1 Q+ N$ o
- ))))))
" q2 T( ?, H- z0 B - cmdliste)
" \# S2 P0 B+ t) D$ p3 m. U" N6 L - nil
1 e$ V; w; ?, q2 {3 w# {4 M" \ - )
' C6 v7 D5 E8 @6 ]6 f - & ]7 m( t9 v2 c& p
- (defun _autoqload (quoi app cmdliste / qapp symnam), v0 H% I4 x! l) H
- (setq qapp (strcat "\"" app "\""))4 P- L0 @1 A. |# e3 y# U
- (setq initstring "\nInitializing...")& K( N& v6 [5 x+ i# l7 g
- (mapcar3 y, |7 @1 Z$ k3 O2 P
- '(lambda (cmd / nom_cmd), |; |. m5 g7 o; C
- (progn
8 d- d u7 X; t/ ^4 V - (setq nom_cmd (strcat "C:" cmd))0 z8 ~& H0 b1 Y. B* T' ^
- (if (not (eval (read nom_cmd)))
3 M; s/ Q$ g4 m* j/ _6 E - (eval
8 y7 t$ a$ B- v1 o$ z# l - (read (strcat* g4 U1 t0 i! F+ _( _
- "(defun " nom_cmd "( / rtn)"; _3 k' ]; e) ?; A) r. q# ~! B
- "(setq m:err *error* *error* *merrmsg*)"
0 W4 ^3 {' K+ i, t4 |8 x - "(if (ai_ffile " qapp ")"
- x: o8 I F2 J7 H% ^- H - "(progn (princ initstring)"6 }7 ]/ A9 {& k
- "(_auto" quoi "load " qapp ") (setq rtn (" nom_cmd ")))"
; ^+ Q3 h! j( I7 u2 l - "(ai_nofile " qapp "))"
& e2 ?* F" h* l2 K+ T - "(setq *error* m:err m:err nil)"% @* N; k+ L( j0 ], m% j9 g% b0 X
- "rtn)"
8 O3 Q8 u1 m& h - ))))))
! \# T5 T* T4 W+ T - cmdliste)! l/ t6 R$ P/ a+ w3 I
- nil
& D, \$ H' ^- j1 {0 @) m; r - ). t W( w# I' v0 r2 j
d; U" ^( _7 {2 k$ T! C- (defun autoload (app cmdliste)
# d) u L/ ]# H3 A6 d1 L - (_autoqload "" app cmdliste)
# }2 h( m/ n% U& f - )8 R* v4 ]' R& a, }8 P6 ?
, u2 O" U0 [$ F! s- (defun autoarxload (app cmdliste)3 ^2 k9 E- D5 E9 X7 f- c& I$ d: Q: ^/ z* v
- (_autoqload "arx" app cmdliste)
' F% W* A# K5 W7 N, |# J" D - )! M( D7 P( V' ~0 g9 R0 ~
( y* K( @5 V* z- (defun autoarxacedload (app cmdliste / qapp symnam)
# B, { C. U( S# P6 S) ^ - (setq qapp (strcat "\"" app "\""))! R& b4 R) b- x/ ~4 }- F9 L5 e
- (setq initstring "\nInitializing...")$ O) t) e8 r& C; {% c
- (mapcar* g% o$ D* ?) G1 Z5 }
- '(lambda (cmd / nom_cmd)3 a! Q7 w7 p' U0 F7 C, f6 v7 J: L
- (progn4 k/ Q. b0 Z2 G3 i4 X
- (setq nom_cmd (strcat "C:" cmd))
* o7 R* v% C; D - (if (not (eval (read nom_cmd)))+ r$ g0 P1 \; E; ^
- (eval. s: j: H; N3 E$ [8 ^' U
- (read (strcat0 j! J* ?6 j2 B8 D7 `9 h
- "(defun " nom_cmd "( / oldcmdecho)"3 J9 D7 {5 Y) r# B& U. |
- "(setq m:err *error* *error* *merrmsg*)"
9 H! \, T" S, [ - "(if (ai_ffile " qapp ")"
" d( O& I7 t& U# U9 P) O! I; u H - "(progn (princ initstring)"
# s9 b, j/ b$ X# o5 Y' e" L - "(_autoarxload " qapp ")"& e1 G: X/ y' b8 B* f! v! f
- "(setq oldcmdecho (getvar \"CMDECHO\"))"" V" j {- ^8 w$ ~
- "(setvar \"CMDECHO\" 0)". b; C; T8 \& B& n) y( H+ v
- "(command " "\"_" cmd "\"" ")" P* |2 o, V% O+ y& G4 T0 Z6 z* Z
- "(setvar \"CMDECHO\" oldcmdecho))"
+ B7 [( }5 j- S$ V0 E# Y: E* _ - "(ai_nofile " qapp "))"
* x( U# j# n# }" N - "(setq *error* m:err m:err nil)"
4 a. S8 a: H- Q) Y' ~# o2 p - "(princ))"" y/ F* a# x! O+ P
- ))))))2 A2 P1 ^; E- C
- cmdliste)
7 E. L( _/ e; {) G2 ~* @! ] - nil
* w5 D; H1 I. Y. q& Y$ s" U - ); {2 i5 w2 y) S Q Q6 }
2 s0 Q- I2 K$ Q' G) l2 [- (defun _autoload (app)) \7 l3 @, z4 ]$ p/ m
- ; (princ "Auto:(load ") (princ app) (princ ")") (terpri)1 `9 @! e4 j2 N
- (load app)1 L. `( H( `' S# ?, r: u( l! J
- ), W8 L: u1 o8 m- G& h1 ?
- 7 h* S' [& W( M3 ]% e$ D
- (defun _autoarxload (app), Z8 f% [# _9 }+ j% a
- ; (princ "Auto:(arxload ") (princ app) (princ ")") (terpri); M7 j+ a/ b- m! u5 _$ I
- (arxload app). E+ ?# X# H. u& V& b; r+ T, S$ M- G$ P2 a
- )2 ~, [, \7 W- S7 n7 r. a; E! _: |
" K& i. x. a4 B0 {7 e6 s' d' _- (defun ai_ffile (app) L j' W: M. v/ a4 ?( w A6 K
- (or (findfile (strcat app ".lsp"))6 r/ \# W6 O: Y* I
- (findfile (strcat app ".exp"))" ` l1 \ b8 A/ c$ A; J6 c
- (findfile (strcat app ".exe"))! x% O6 B: o( I2 ~, C
- (findfile (strcat app ".arx"))! v& w* C5 [- G7 D3 _/ Z
- (findfile app)
" a. S8 L4 L5 D+ O9 x - )7 O' k9 C, }$ x6 S
- )
6 o9 b$ t/ ?2 R! m" l - 3 J; \/ y; {+ E
- (defun ai_nofile (filename)
7 ]/ n( J$ u! M) \6 p - (princ
8 I9 e0 X) {) _6 u$ e - (strcat "\nThe file "
3 f: n0 A) D5 c w% t ] - filename
! k" e( K, N9 f9 a - "(.lsp/.exe/.arx) was not found in your search path folders."3 A& Z' Q" ~' Q4 ^0 x
- ); p2 [1 z R/ s X2 ~& h y
- )
& k3 ^! G8 j2 K- Q - (princ "\nCheck the installation of the support files and try again.")
2 V3 `+ L, r7 R1 y# C - (princ)$ L2 y+ h1 @1 f9 i" f. ]$ H. X- [
- )% o8 b' A, w; I1 ?) g% n
- ' w" d: ]( ^8 ?5 l. H
6 X0 ^6 I0 _, k9 a- ;;;===== AutoLoad LISP Applications =====8 a2 h& V0 i. D/ O3 E
- ; Set help for those apps with a command line interface8 l) k* s/ s2 R. _# b4 @6 r: ~
- 7 s) k+ m! i8 f# e9 v# [& b
- (autoload "edge" '("edge"))
0 O2 q7 [5 Z6 `* D1 h2 a5 N - (setfunhelp "C:edge" "" "edge")$ f( @( c- p0 k6 j5 n
3 x, J( L W2 ^# x8 q- (autoload "filter" '("filter " "filter"))
* z6 Q; h5 k! e- J q- W - / p; t Y }' D6 `7 h# ?7 ?9 c
- (autoload "3d" '("3d" "3d" "ai_box" "ai_pyramid" "ai_wedge" "ai_dome"
) W' e$ ^5 Z( I* v3 w/ H, r - "ai_mesh" "ai_sphere" "ai_cone" "ai_torus" "ai_dish")( s! ]: T3 Y, O3 Y/ a0 h
- )
; F1 @: E8 k+ B) U" ~! K - (setfunhelp "C:3d" "" "3d")
8 }. ^4 J. r0 n1 n1 k3 k9 Z* } - (setfunhelp "C:ai_box" "" "3d_box")& I+ z- N1 W }8 b" t! |3 F
- (setfunhelp "C:ai_pyramid" "" "3d_pyramid")
8 D. d2 L+ ]3 G/ |" I - (setfunhelp "C:ai__wedge" "" "3d_wedge")9 k- X$ j+ O4 p. E
- (setfunhelp "C:ai_dome" "" "3d_dome")1 g z4 i3 J( x b
- (setfunhelp "C:ai_mesh" "" "3d_mesh")- S1 ?5 F* z5 s
- (setfunhelp "C:ai_sphere" "" "3d_sphere")
& @* a: k; e$ o/ P+ ?" l - (setfunhelp "C:ai_cone" "" "3d_cone")
. K6 t( T' H; u& p9 V1 u4 p - (setfunhelp "C:ai_torus" "" "3d_torus")
, c5 L! D) j( g7 b+ p* @0 s. C1 n - (setfunhelp "C:ai_dish" "" "3d_dish")
+ t6 S; ~( F8 ?: D5 T$ j) D9 @6 @# {" z
, g- \7 C9 T* Z5 d) \) V- (autoload "3darray" '("3darray"))
' f [7 ^- C9 C7 I8 D3 s. ~" \ | - (setfunhelp "C:3darray" "" "3darray")( J" e& Q6 ~, N' G0 p2 Q
- & f; K; F; w' u- p1 i0 w
- (autoload "ddvpoint" '("ddvpoint"))1 @3 V) p+ L2 E+ j8 D3 E
$ O% w5 E5 k( G: [( e- (autoload "mvsetup" '("mvsetup"))& c T& S; s# e+ w; Q5 L" S
- (setfunhelp "C:mvsetup" "" "mvsetup")
2 w' Y- S1 I. p. k9 @ - S) K- Y; n+ {% I! `
- (autoload "ddptype" '("ddptype"))% S; f4 q# B% R* N* Q
# T( g# J8 Z2 K- (autoload "attredef" '("attredef"))" A e" {; K: j% u" j: ~, w6 K
- (setfunhelp "C:attredef" "" "attredef")$ u9 W m2 G5 k1 r" d# d
- & [* y% A( }6 R# y, M3 h# M, v
- (autoload "xplode" '("xp" "xplode"))
0 G, q3 |( p/ O9 b" n+ K - (setfunhelp "C:xplode" "" "xplode")
( P) _8 b1 n# W - 5 N8 u# K* L( Z( |$ N8 e- \
- (autoload "tutorial" '("tutdemo" "tutclear"
& @( L9 z+ J5 | - "tutdemo" . n& Y3 D% d* j7 H' m) s# y: c% P
- "tutclear"))1 m, h6 [! w- r0 N4 H# G I9 \/ I
0 i# X4 c( S# W# c- ;;;===== AutoArxLoad Arx Applications =====
/ Z$ J% [& K& F% E - ; U% s4 C, ~9 S% I
- (autoarxload "geomcal" '("cal" "cal"))
9 m1 a; n$ B6 x! |, s5 h - 9 X% d! s) i. A* f
- (autoarxload "geom3d" '("mirror3d" "rotate3d" "align"0 O R P9 B5 N$ i
- "mirror3d" "rotate3d"
1 i/ U! L1 d V- F0 z+ W) p) ? - "align"))/ K- i' x) h6 S% [# Q. r7 A2 D
- ( f9 ^9 b1 O; ~
- ' Q( N2 \; C4 [, p. o/ H
- ;;; ===== Double byte character handling functions =====
- e8 l" ^; K+ `1 N
/ W- ]) O+ y; q) k- X) y8 N- (defun is_lead_byte(code)
- M( }0 j; N2 ], ]% c3 u3 y - (setq asia_cd (getvar "dwgcodepage"))
0 R4 z2 p# w% R# }6 t; E - (cond
/ x! l8 L. }/ Q - ( (or (= asia_cd "dos932")
( [3 { T* g! f3 s J - (= asia_cd "ANSI_932")
- Q# s( k7 j# P5 r9 Z" d6 e7 X, h0 k - )
" C7 ?8 b( e9 g& C9 n! ] - (or (and (<= 129 code) (<= code 159))" T1 z6 m* C1 S2 P8 I6 o% L
- (and (<= 224 code) (<= code 252))
1 p7 K$ W0 [- [* v; l1 L5 ^ - )
: ?! I: ?5 f0 ~1 Z& p. R) D - )$ b0 q" {; W0 E: d
- ( (or (= asia_cd "big5")
8 k* S, n0 U+ z3 I- V - (= asia_cd "ANSI_950")
{. A6 f0 L3 N* l& V - )
, W, q/ d! c B- e6 g4 R$ K# u! [ - (and (<= 129 code) (<= code 254))! U3 I$ {) H# F6 V2 t
- )
: W" s; C% h# K/ N1 k7 ^ - ( (or (= asia_cd "gb2312")
I# {. }) j4 u - (= asia_cd "ANSI_936")6 @% w1 _1 O: ?" d, h) N2 X
- )5 m' A; I& S, R
- (and (<= 161 code) (<= code 254))
3 O; t ?! j% o# l& ?' U1 }# g - ), m! _. {. Y4 z
- ( (or (= asia_cd "johab")- r) B* S9 |4 M) P
- (= asia_cd "ANSI_1361")7 a5 T' w5 I4 k$ }6 k
- )* M6 n) }6 U' m0 D. n4 ]: e
- (and (<= 132 code) (<= code 211))) I# n' V, }/ A0 f$ X
- )
7 b9 G: f' f6 E0 t3 A; }. S - ( (or (= asia_cd "ksc5601")9 @& k$ W8 m; s' z q1 B7 r
- (= asia_cd "ANSI_949")/ r" ?* @+ k7 s; L
- )( k) i2 Y- n( _ Z
- (and (<= 129 code) (<= code 254))* T& ~, m1 Y) D6 K; t
- )' u& C4 x0 s3 Q( s4 c9 G
- )1 C7 x) i* A3 S. ^9 E6 Y! Q
- )3 w j# J: P% |8 g+ F
8 o* V7 G ~/ D! y( B- ;;; ====================================================
$ y2 K* ^! m! \% K# [; N
# P) ^! d* z: e+ w- % l1 E. c+ A! H3 U4 q% q% e# f
- ;;;
- v, Q ^( P- }% P - ;;; FITSTR2LEN
( O' U( h6 z3 S4 N$ Q9 A5 Z - ;;;- E8 }+ i; \- M( ^7 _
- ;;; Truncates the given string to the given length. ( g1 B- t- Y' |) W! P
- ;;; This function should be used to fit symbol table names, that" ]7 l" ~, k, j9 G* ~
- ;;; may turn into \U+ sequences into a given size to be displayed
$ F7 B6 W8 w( p; | ]/ b - ;;; inside a dialog box.; t4 L* Q* Z, X( ~! r3 s+ S
- ;;;, E! L" I. \" R+ J0 Q# Q! N
- ;;; Ex: the following string:
) C* Q4 f. B# `" J - ;;;
% u+ p9 w; _' V - ;;; "This is a long string that will not fit into a 32 character static text box."
* Z7 e! b% h3 P. ~/ ^ - ;;;' J0 Z9 M7 p$ R J) y3 R
- ;;; would display as a 32 character long string as follows:
* J: k: V! N, y# @7 r3 M - ;;;
2 K2 N) O1 ?. S( w9 ~ - ;;; "This is a long...tatic text box."
: u. ]5 T' M6 I6 m/ n - ;;;
) p9 E3 ]# S; Z# a; A
( V. \8 s3 t# W+ Q) b- (defun fitstr2len (str1 maxlen)
) [' e; |: x0 G- p8 E, j% }/ j - 1 X; n4 ^$ d, L: s
- ;;; initialize internals
. R0 {" {' x3 y! [ - (setq tmpstr str1)
. P* D" {9 @" v5 {+ h: v - (setq len (strlen tmpstr))& g q7 G9 Z' i8 k2 g7 M% O, Y; t
3 y) H& m B: s% X- (if (> len maxlen)
: v( e5 Y5 e r+ Y \$ I - (progn! B! {2 X4 T1 d8 p. j6 g( y) @* w
- (setq maxlen2 (/ maxlen 2))! g9 j2 ]6 m$ ]: y* D3 b
- (if (> maxlen (* maxlen2 2))
: ^; C! o3 v/ u) q* J1 S) V - (setq maxlen2 (- maxlen2 1))
9 P9 S; D! ]1 @# S0 |9 }8 C8 T5 F) z - )
4 u2 R+ z1 f) x - (if (is_lead_byte (substr tmpstr (- maxlen2 2) 1)); ^/ b' _4 k3 v( } E, X8 O! H) o
- (setq tmpstr1 (substr tmpstr 1 (- maxlen2 3)))
4 B { j) |- L- S7 X3 \" t - (setq tmpstr1 (substr tmpstr 1 (- maxlen2 2)))/ l& ?! m/ I& s% C* U
- )
3 v4 |/ b4 k; E4 s& o" i - (if (is_lead_byte (substr tmpstr (- len (- maxlen2 1)) 1))4 j$ g4 ^* n. k- |& L: M
- (setq tmpstr2 (substr tmpstr (- len (- maxlen2 3))))
b$ s- r- k9 q! V+ w - (setq tmpstr2 (substr tmpstr (- len (- maxlen2 2))))) ~% T, }' q5 z
- )9 m& U) s Y& H: \- Z% r9 b) B
- (setq str2 (strcat tmpstr1 "..." tmpstr2))
1 |) v. I4 k8 G& H% h - ) ;;; progn9 T! @7 ]5 W3 a# M. E5 k* U
- (setq str2 (strcat tmpstr)), O# O9 \ P: n$ p+ p
- ) ;;; if
: r$ q% J: C7 a$ H$ I( ^: T9 k - ) ;;; defun
# r% D, W2 B. j/ L+ g- Y - ; i$ s# K- e( I
- , v& K+ ]9 @7 N ]
- ;;;
3 w+ y: i$ W. V7 k2 I - ;;; If the first object in a selection set has an attached URL
7 [# o/ ~/ P W7 c4 ~4 ~7 I9 e6 l - ;;; Then launch browser and point to the URL.$ E9 [/ p' ]# g! U& ~9 A& E
- ;;; Called by the Grips Cursor Menu
5 a8 S1 O- }' N' o - ;;;. O! C0 z6 W1 f7 \5 o/ U7 d; `5 x
8 q; \- e+ }) f$ e* k* @- (defun C:gotourl ( / ssurl url i)
f; h5 t! c) \' f9 } - (setq m:err *error* *error* *merrmsg* i 0)
3 t Y. t0 c. z1 ?6 @0 ~
* E/ y/ |- W5 q* C; x% x4 e( ]- ; if some objects are not already pickfirst selected,
. W; q8 o* Y/ Q - ; then allow objects to be selected
, g' R# I( l3 z! w - $ C! n5 c8 i6 q$ v* j! v
- (if (not (setq ssurl (ssget "_I")))$ {. f* D" k) E, ~6 g* Q
- (setq ssurl (ssget))" V+ p8 r& Y F O
- )5 x q; ^1 Z6 e4 F
- a2 m, J% i& H+ B* Z7 n' u9 X4 V M
- ; if geturl LISP command not found then load arx application
?4 J$ T; i# R
$ B, B0 }0 V8 E+ z3 C, c8 `8 {0 M- (if (/= (type geturl) 'EXRXSUBR)1 p/ M. d% l2 m0 q% w% K
- (arxload "dwfout")
( P# z/ L7 ?4 [6 ]$ L" E1 x - )
8 V' H0 O2 H. ]8 c -
3 F( Y0 T9 b$ }5 z/ Z5 e( X5 t - ; Search list for first object with an URL6 {- \/ R) s7 J7 x& Y) ~3 U
- (while (and (= url nil) (< i (sslength ssurl)))
" m. l3 b: s) P. A7 g0 N - (setq url (geturl (ssname ssurl i))
; [% J1 W9 g9 B5 N/ v9 } - i (1+ i))+ b: c0 i6 W( K9 g4 o
- )* s. @, e8 O: R/ s% a: q
- 5 @' |* x- o ~. A1 x
- ; If an URL has be found, open browser and point to URL
+ C+ j+ F, g8 d& C1 @ - (if (= url nil)
( B( E" z0 Y6 g+ V! ^5 z - (alert "No Universal Resource Locator associated with the object.")
" o9 `8 ^! Q; s2 ?/ D. e - (command "_.browser" url)
1 L7 M8 I0 [' t% v - )* U" ~; m$ s# P4 x+ f; s
- $ r( }6 I9 C; W( |
- (setq *error* m:err m:err nil)
- s& o0 c6 r* A& `; y. }) R4 u - (princ)
6 ?3 c) W3 W6 j4 P
1 [& o W- \- P" _3 Z- )) \, p. ~" O3 [6 F
- 2 v0 t3 f3 h. L
- ;; Used by the import dialog to silently load a 3ds file
$ j- a- S% c' c6 o) b# I' M: e - (defun import3ds (filename / filedia_old render)+ G {+ V) h- R) M+ _ [
- ;; Load Render if not loaded
2 O0 i9 V! b! `) l$ X1 R - (setq render (findfile "acRender.arx"))
) E4 u! t; e# L% e, b - (if render
8 B z! b4 G' v6 M! y# O - (verify_arxapp_loaded render) 0 i5 i. v% P7 s1 z. e
- (quit)
$ O4 t! E" Q1 E# x' a9 O - )
: q. Q- v; T2 `; v. x - 3 f: u# A6 Z1 K$ V
- ;; Save current filedia & cmdecho setting.1 i9 ~; }, ^7 A7 }4 |
- (setq filedia-save (getvar "FILEDIA")) |1 {3 `5 V* c j* O! d0 u
- (setq cmdecho-save (getvar "CMDECHO"))9 \. @$ y- ~+ B! S) f" h5 K' R9 Y
- (setvar "FILEDIA" 0)
/ E, L7 _( d+ g2 m. ~1 c - (setvar "CMDECHO" 0)
. Q$ Q3 j1 Q9 x9 L4 D - C1 m! C: F+ @, @! o
- ;; Call 3DSIN and pass in filename.
3 H! ~+ i. Z+ @7 ]( U* \5 C - (c:3dsin 1 filename)
- ^* y8 I2 i& t% D
" {( b5 ^$ J& F1 }+ T4 y F" b- ;; Reset filedia & cmdecho
" J- T9 L' f& N( o1 x: B' w - (setvar "FILEDIA" filedia-save), j [+ f' Q& ~# T1 Y$ b
- (setvar "CMDECHO" cmdecho-save)
0 T4 T# w8 |8 r: w% H* b# E - (princ)4 z1 [& H# x7 S1 ~+ [5 w
- )6 b; E% c) E" O5 s$ ?
4 v$ y1 n- u$ ^9 D+ s- 8 K ~; ~/ V2 W+ Z
- ;;;=== Menu Functions ======================================
( X8 q- |3 D9 i' E! |4 C - - d& Q! j6 a- W) G. V: n6 h' d% j
- (defun ai_rootmenus ()
" n& x3 {) n. _8 r - (setq T_MENU 0)
# W0 x- S( p7 c, M) g! k9 E& ]$ v( e - (menucmd "S=S")
) g" {3 t3 y, r - (menucmd "S=ACAD.S")
0 Y o- `% Y. K - (princ)1 b# p! C( E0 C3 [( V
- )
0 y2 h4 H4 k3 Q6 `8 b: d - ; p6 s6 r+ F' D/ d+ C
- (defun c:ai_fms ( / fmsa fmsb)7 {. S) R2 ]6 A
- (setq m:err *error* *error* *merr*)
' V% Y4 j3 U% k9 I% Q+ i9 k - (ai_undo_push)' q' H9 }9 p. ?6 L. O4 X7 { a, {* D
- (if (getvar "TILEMODE") (setvar "TILEMODE" 0))
% ?' s; Q$ Q; Y( K4 R - (setq fmsa (vports) fmsb (nth 0 fmsa))$ g3 l6 ~ i, V/ J0 S$ Q; f# w
- (if (member 1 fmsb)
2 J' t9 N. h1 Q5 e - (if (> (length fmsa) 1)1 i) R E# F( N6 Y. a3 w
- (command "_.mspace")
/ Z( @9 G1 e( n$ R% D. T" ? - (progn
! D0 s* v4 C0 A$ @3 ^) P - (ai_sysvar '("cmdecho" . 1))
0 x& t- j8 E7 J. L7 o - (command "_.mview")
( z0 ~, k* y( a3 ~0 R - (while (eq 1 (logand 1 (getvar "CMDACTIVE")))- _( W0 X" w' Q5 A
- (command pause)
# K- Y: J2 i( [1 P1 z0 d - )$ e! s* b9 t1 b/ o. p- Q$ r3 C. S [7 M
- (ai_sysvar NIL)
I* l5 a1 P* h7 N2 ^* b3 w9 ]% F - (command "_.mspace")0 {1 F3 f: x( N5 U( c9 D
- )6 o" m, B4 `# |5 j' z. z: N
- )7 i! z0 l. _$ e& t
- )
/ t% D. N' J0 u( X' P( L - (ai_undo_pop)0 h9 S B% c; O; m, v$ i3 l. S
- (setq *error* m:err m:err nil)( w6 A1 k; p/ t9 j3 _6 @
- (princ)
! ]$ p( E$ R2 o* Q - )
' i8 |: s: _8 L; A( M" c* O: ~
/ T2 j; y8 O& b3 |, ?4 S- (defun ai_onoff (var)
) d' F' w0 Q. v h! C - (setvar var (abs (1- (getvar var))))
0 Q* Z6 i( r E, p - (princ): C) o" ]$ r/ r& d0 ^: } }1 K8 N
- ), Y' z) s, k! r# b
/ q/ {& E; ]2 |/ u" o8 y- ;;; go to paper space+ M: Q7 E$ E' e) J& K: ^
- (defun c:ai_pspace ()
5 n$ c" q" K. { - (ai_undo_push): [- G, Y! m0 t8 F" A5 [
- (if (/= 0 (getvar "tilemode"))
6 g* H1 q* S) C% H - (command "_.tilemode" 0)
6 ]- ~6 |" k# F - )8 h; G/ H( s! ?
- (if (/= 1 (getvar "cvport"))3 x O& ?( R& ^% k) }5 O$ {# p
- (command "_.pspace")# u, |: q) t4 q* R
- )# }- \) f: O; `0 E Z2 R' w% q1 P
- (ai_undo_pop)
5 v: |& q ~. m4 p: T2 ~ Z - (princ)
- h o7 I! j5 C* I. @ Z4 d& x - )* X9 f% r- T; I. w8 [3 ~4 ]' b
$ Z. b% R- @: a( r! t& W- ;;; go to tilemode 1, s2 l- N: w Z/ N1 _
- (defun c:ai_tilemode1 ()! \" e- S( E, q
- (ai_undo_push)
' Y1 ^8 F4 ], h - (if (/= 1 (getvar "tilemode"))% {% H& Z" ~- [
- (command "_.tilemode" 1)
2 q1 Q5 c( s; J) T3 z+ [; s - )$ _& j+ n7 F. C
- (ai_undo_pop)
3 f, s1 l$ l: x* T7 s- s& q6 V" p - (princ)
2 M/ S/ b: w9 F% S8 o - )( [9 T) q( L4 ]) u
- x5 b- A6 u: M8 b! @; b- ;;; Pop menu Draw/ Dim/ Align Text/ Centered
4 r( C/ M8 [& |+ o/ a7 v! x- y - ;;; Toolbar Dimensions/ Align Text/ Centered
+ @6 P) P* _, @, g - # D \ k; ]3 T9 Z8 R" L7 t6 ]. o5 T
- (defun ai_dim_cen (/ ai_sysvar ai_dim_ss)% O! O0 A. F& C0 @
- (setq ai_sysvar (getvar "cmdecho"))7 y$ M. D/ @( l
- (setvar "cmdecho" 0)! j/ u: A9 u9 g% r/ K
- (cond
6 V6 z+ _# Q1 }6 g - ((setq ai_dim_ss (ssget "_P" '((0 . "DIMENSION"))))0 z, `. o8 ] u6 z. m9 B9 {! A8 q% k
- (command "_.dimoverride" "_dimjust" 0 "" ai_dim_ss "" * A' m9 b4 B2 f1 R5 w3 F+ M
- "_.dimtedit" ai_dim_ss "_h")7 ]# z7 [6 h1 U8 F* N |8 |9 d
- )
6 }2 ~* ]# t% w5 n% d - (T nil)
: l: J0 U2 N" U+ `" y - )$ y$ E4 A+ w, @' N4 E+ X: I
- (setvar "cmdecho" ai_sysvar)5 G5 W1 W7 D8 @! l9 K" Z
- (princ)
( I. a* S/ b$ A1 }. A1 y* E - )
- L+ B2 K6 J# ]* n9 i A - / M; N/ l2 I: X- ^- M: p% M# A
- ;;; Shortcut menu for Dimension Text Above
+ |/ \6 e, q6 ^3 e- Z% W/ Q8 _# c
5 o% E( ?. j2 t( ]: G" M- (defun c:ai_dim_textabove (/ ss)3 X3 D% ^* J4 ^+ o5 Z3 A; O$ i
- (ai_sysvar '("cmdecho" . 0))
& B9 h7 `7 _4 a! Q- W, p - (if (setq ss (ssget "_I")) q9 N8 L( O* @' x' S0 N9 X
- (command "_.dimoverride" "_dimtad" 3 "" ss "")
7 B6 O) |* p" F - (if (setq ss (ssget))' Z9 \+ `! l/ U: E' I: C7 E. H
- (command "_.dimoverride" "_dimtad" 3 "" ss "")
t" D4 v$ ~6 ] - )
' A4 T. G7 x: \ W - )4 N2 _: O7 U3 k( I7 g& u
- (ai_sysvar NIL)# X( x! M2 D4 ]% Q& ^' ?, r
- (princ)
) @2 i' s) O' q9 {% R) w - )- R- r& ~9 e3 q* V3 r' d( S
- 3 q( s. ^/ H/ y' ^
- ;;; Shortcut menu for Dimension Text Center , A H7 Y8 `; e- n2 _
8 j3 ~ v4 _3 S. z4 v$ N: }- (defun c:ai_dim_textcenter (/ ss)
" ~7 e! c- E' o7 C6 a6 }% R4 ^ - (ai_sysvar '("cmdecho" . 0))
' `; w2 F. C" Y9 q - (if (setq ss (ssget "_I"))8 l; e8 d, P% d. W6 N( f/ M
- (command "_.dimoverride" "_dimtad" 0 "" ss "")! |9 j. Y! I9 u5 u0 T/ N4 d
- (if (setq ss (ssget))( @, e8 h( c) t+ D: l: }4 j5 V+ @# j \
- (command "_.dimoverride" "_dimtad" 0 "" ss "") & I- B7 F* I. A
- )" p, E" [) a9 t* F) V* H. V" }
- )" [% L8 V7 F. x5 r+ u, V1 Y
- (ai_sysvar NIL)
. x$ f8 O+ N6 I- O$ v4 | - (princ); B% }3 R8 r1 d% J
- )) B6 h4 ^* y0 A4 E- U& v
- " v* N+ W5 y$ X- A, Z
- ;;; Shortcut menu for Dimension Text Home
2 @! ]+ Y& c7 }$ E7 t - % g6 a1 p& p- J+ m
- (defun c:ai_dim_texthome (/ ss)! w @/ A7 M: W F
- (ai_sysvar '("cmdecho" . 0))% a4 H8 x* m f3 F9 j+ ^1 \
- (if (setq ss (ssget "_I"))
2 t4 S( |8 ?: m; r' j - (command "_.dimedit" "_h")9 ?: c: f7 [$ \
- (if (setq ss (ssget))
/ c- {: r; [: H( Z" k - (command "_.dimedit" "_h" ss)8 I9 ^9 W: v' {) [
- )
3 P- e1 r$ ~* Y& k - )8 {: x* J2 f1 S' B' y5 J: Q* c
- (ai_sysvar NIL)" Y6 L4 z+ S! R: T. `8 M1 W! b+ x
- (princ)- M: u1 e# |* u' F7 t7 h; F) m
- )0 T7 e. q& ]% L5 s% e: |
- 9 M- Q7 b+ J2 s8 P. V$ m" p+ N
- 2 D, W- m, T2 b x% }! ?- ~# M
- ;;; Screen menu item for CIRCLE TaTaTan option.1 r" K# v# h4 J- r0 l
- ;;; first, get points on entities
2 N6 H' [: p0 B2 K" C - (defun ai_circtanstart()
7 z5 @3 e' W% l9 V# A - (setq m:err *error* *error* *merr*)
' Z) z1 D. Y% M: ^% w8 w/ Z - (ai_sysvar
- {5 z% e1 ~, k0 J" Y0 R - (list '("cmdecho" . 0)
3 i2 [+ k* g! E" q8 u m$ k/ s - ;; make sure _tan pick for CIRCLE gets same entity
" o8 K l0 ]+ C w - (cons "aperture" (getvar "pickbox")): ~# S0 U# L2 _+ b
- ) l) P9 b( ?+ i! J+ [: a
- )& p0 f( {! \; e/ _) {. Z2 m2 L
- ;; prompts are the same as CIRCLE/TTR command option
0 N& X) F- q+ t7 a! R8 S' O - (setq pt1 (ai_entsnap "\nEnter Tangent spec: " nil))
) ]8 _- D0 p8 l. b# M0 |0 r - (setq pt2 (ai_entsnap "\nEnter second Tangent spec: " nil))' x/ L+ a- P% p! C! V7 B7 y
- (setq pt3 (ai_entsnap "\nEnter third Tangent spec: " nil))
7 O( s- A$ t( Y1 V$ ]9 F9 w M - ) O' T ~1 V- } d
- ;;; Command-line version) p+ l5 `* n5 p+ A. r$ r
- (defun c:ai_circtan (/ pt1 pt2 pt3)% L0 s0 B1 q# y7 }. M0 E
- (ai_circtanstart)9 M" M$ V3 ]1 b0 s' O) \
- * ^+ q+ _5 B& h9 \5 L
- (ai_sysvar '("osmode" . 256))
' X) Q* d5 t m; Q' U2 w - (command "_.circle" "_3p" "_tan" pt1 "_tan" pt2 "_tan" pt3)
9 m2 z. A7 F3 J( L' f& d+ m7 d) v - " l# t" X& G2 i$ I
- (ai_sysvar nil)
# u: h+ l! O; k: k3 t" g/ I* R- y - (setq *error* m:err m:err nil)
6 Q9 w, i$ V+ O - (princ)
4 Q# J. d0 ]* \$ t) h - )* m- H) e7 L: Y7 t
- ;;; Use this if CMDNAMES == CIRCLE
) R9 }& V! e, \5 Y* V/ a1 M- Z4 P - (defun ai_circtan (/ pt1 pt2 pt3)$ E6 a, B3 e+ `' |. F$ Z
- (ai_circtanstart)0 u& c* ]) H. A( C( H* D
- & d( A$ J) I' e4 ?! \$ E. _1 v
- (ai_sysvar '("osmode" . 256))# p/ ]+ p) c. `0 T% y M6 Z% D; _; T
- (command "_3p" pt1 pt2 pt3)0 J) [1 t8 s2 r# R# o
-
! \3 S% f% U1 C' k# Q - (ai_sysvar nil), |7 d5 d& W; X- d; X* ^
- (setq *error* m:err m:err nil)$ D1 C1 X& I5 |6 L( v
- (princ)( ?; L. K [4 R- @. f+ _+ ]2 d
- )
2 q( j/ ?' d# ?+ a
p8 t+ V8 u6 G3 ]- : d6 a2 L2 M! f+ {" l# h
- # N' C& ^" E- @0 K8 {
- ;;; Shortcut menu Deselect All item.
: U5 |. F1 q: p- l
% N D F; o! o6 p0 D) f1 G' ]4 Z- (defun ai_deselect ()
! K, u, l% _7 c8 d) q. g( e: S - (if (= (getvar "cmdecho") 0) ;start if2 N, G/ M# N# c. l H* [# K
- (command "_.select" "_r" "_all" "")0 b" M4 y' w Y u
- (progn ;start progn for cmdecho 11 q- v. v( S& I
- (setvar "cmdecho" 0)4 a) j& z. k& F$ Q3 J
- (command "_.select" "_r" "_all" "")& A% A1 j" O1 h: v3 j, o
- (setvar "cmdecho" 1)
* b4 p% F1 k6 Z, k! l [$ ~6 U" x - ) ;end progn for cmdecho 1
( j; W/ f: D8 n0 Z# Q: c* `3 P - ) ;end if
. ]4 r6 Y3 O0 o6 y! t; }+ Z0 j - (terpri)! k" t3 [3 v- o
- (prompt "Everything has been deselected")" h, T0 c* R, n, h" q
- (princ)# y+ u! p. L u$ u3 s: B, B
- )
# ]6 s- B" v% Y* i- p( S: ~ - " p$ C" @3 R& d/ `8 h1 z6 o
- ;;; Command version of ai_deselect to be called from the CUI1 W1 l5 |! ^1 J
- ;;; so it gets properly recorded by the Action Recorder1 S g9 q d! v) ^7 X2 U* _' E; ?
- ;;;/ [; a( |5 w/ D/ `6 F! {
- (defun c:ai_deselect ()0 ~6 t% B' b) L# Z4 {
- (ai_deselect)$ y- ~. ^, b. @( M9 Z8 F
- (princ)3 }- `5 t& }( G! u1 N. T
- )# Y2 t: K( l! w. ^
- 5 |3 h3 D! a2 T/ D; G% B0 {( P& [$ n
- ;;;7 r& b; h6 y' S, y* ` J
- ;;; Enable Draworder to be called from a menu
: w* F( ]2 {' Y( |9 n - ;;; Checks for Pickfirst selected objects
) Z, `" M9 j4 s" p - ;;;
9 _. z+ D' R* {6 S$ h" B
$ f& l- S0 H$ x, r$ u" q- (defun ai_draworder (option / ss )
! B- F1 h* a8 b( w' v' \
* ?( n' i9 a! T1 _- L6 D- (setq m:err *error* *error* *merr*): P0 F) p& I' b0 b
- (ai_sysvar '("cmdecho" . 0))$ B' {# m& Y9 G6 J% W
- $ h/ ^/ x* K9 s( S. V$ G3 `
- (if (setq ss (ssget "_I"))
8 a" v0 u. N: C( N% T v( C* w - (command "_.draworder" option) z6 N5 w, K6 @ c4 o
- (if (setq ss (ssget))
. z) _: t% F1 `/ Q& ^! t - (command "_.draworder" ss "" option)
3 [. M" x0 l2 t* r% V+ o- m- n - )! Q. `1 q+ {" E
- )" \* ?7 q0 o2 M1 f- U
- (ai_sysvar NIL)
9 H( K+ \: D" L8 ~2 U1 s, R - (setq *error* m:err m:err nil)
7 v3 R7 s7 ]* v, s! V. x# h4 f
6 s. g ~2 N# y3 T! K2 [- (princ)
y4 f j" ]- L+ s1 g. `0 ] - ); T \# G1 L/ O# E& D. A
( ?7 L' n8 I; C% W- ;;; Command version of ai_draworder to be called from the CUI
% S4 v2 |( P$ n& `) f: W4 A- A - ;;; so it gets properly recorded by the Action Recorder8 u: k4 l2 F8 T/ q! q
- ;;;% D# o1 I4 V4 i% q8 [" i- _" r
- (defun c:ai_draworder ()
5 t5 @3 x) o* k1 v' a2 m - (initget "Above Under Front Back")0 l; X: }) G: W+ c+ }0 C
- (ai_draworder (strcat "_" (getkword)))0 ]+ `8 w* z5 o$ r
- (princ)
% N1 z* ~( {: i/ _$ r: g; T - )
6 b3 e& V9 i& d: q! } - " w. j; x: J" g1 \* e* S) u& v* k
- (defun c:vlisp ()+ a0 E& H: f( V8 B
- (if (/= nil c:vlide) (c:vlide))- D' d! y- E, h: y
- )! R ~: m0 N& T x( g
- $ c% @5 R8 h" A0 [
- (princ "loaded.")
+ G" R$ V I5 U1 p B: K - 3 y9 ?6 B9 x% a; g" X( P) V
- ;; Silent load.! G4 W2 M1 P. v
- (princ)
/ F; E, `) }! a* R. t7 |5 C4 t - % x1 v' J: {! k+ c$ p
- ;;;----------------------------------------------------------------------------( s4 S+ M& V; d% K$ V
- ;;;
% Z7 h! O' V; l' g' o/ o: j - ;;; DDCHPROP.LSP Version 0.51 X9 ?( t; T8 X* l6 `
- ;;;
% d: l. o3 j8 F% p% X% z* h - ;;; Copyright (C) 1991-1993 by Autodesk, Inc.
7 p! [* b+ w3 M/ I& u& B - ;;;
; C# U' e" w+ b; X4 a% P - ;;; Permission to use, copy, modify, and distribute this software- Y- J" G5 m% j4 n! }) q
- ;;; for any purpose and without fee is hereby granted, provided
" x& C: h/ Z. h$ s# B, A - ;;; that the above copyright notice appears in all copies and that. w1 g6 G0 e! x* P6 {; w- U
- ;;; both that copyright notice and this permission notice appear in
0 D+ B W' G6 o# F+ K - ;;; all supporting documentation.- j( j( p' D+ k; a
- ;;;/ o. k$ ^0 @. a- V
- ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED
! f3 x2 e; i! G; f _6 j - ;;; WARRANTY. ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR3 a# B E- \1 [0 e9 I I
- ;;; PURPOSE AND OF MERCHANTABILITY ARE HEREBY DISCLAIMED.7 g( I2 [7 a- b9 S% o' b6 ~
- ;;;$ T/ r- t4 x$ v2 A
- ;;; 2 February 1992
3 I* d* C* e0 d- x8 [ - ;;; $ U! }% v2 f$ q% }+ Z5 W8 v
- ;;;----------------------------------------------------------------------------
5 P" ]7 _4 U0 ]$ l/ C - ;;; DESCRIPTION
7 @: I% E$ U2 j/ L# |$ g - ;;;----------------------------------------------------------------------------7 P4 N2 i) ^0 Y5 p1 e3 W9 ~
- ;;; C:DDCHPROP is a dialogue interface for the CHPROP command.; q0 |+ `4 O$ R" {& B. }2 w
- ;;;4 g( N2 [( V& Y6 g
- ;;; The command looks similar to DDEMODES. The main dialogue has an image 2 x" X& x) V8 q, Y; m
- ;;; tile, 3 buttons (layer, color, linetype), and an editbox (thickness).
& i' h1 v5 {' ^+ n2 k6 _ - ;;; The 3 buttons each launch a sub-dialogue containing a list and edit box. ; w; e) R) s* c! n4 y3 C0 |6 N
- ;;; The dialogues are all defined in the DDCHPROP.DCL file.( a7 e0 p0 D/ Y4 L( f$ E& l0 O
- ;;;
" K; J/ v1 P* e- ?! W - ;;;
$ o+ G1 E, D1 Y7 v" p - ;;;----------------------------------------------------------------------------' U6 t* ?! R1 E6 r+ W$ t1 }5 e
- ;;;----------------------------------------------------------------------------
) w5 t. Z: h: f1 \8 t( T - ;;; Prefixes in command and keyword strings: ' T6 M! z+ m% s4 t1 z% z
- ;;; "." specifies the built-in AutoCAD command in case it has been
, j$ |9 _$ o# |4 Z& I: F - ;;; redefined.% |6 D! e: D! L4 j
- ;;; "_" denotes an AutoCAD command or keyword in the native language7 W+ g1 T+ T/ V3 l
- ;;; version, English.
" l; B% l/ S$ {9 e - ;;;----------------------------------------------------------------------------7 k2 p5 |" v; t3 e' C2 ~
- ;;;4 Z( ~0 t5 L" K' x" w- X1 p4 }& G
- ;;;
' [3 e+ M: t- W# N3 q, ` - ;;; ===========================================================================; \3 T3 S6 Q0 L) L& b8 e( @3 ?
- ;;; ===================== load-time error checking ============================
2 I; W# {1 e/ k" ~. V - ;;;/ `, \0 p4 ?/ Q3 ?5 z; f
9 ?: h/ g Q& u: N4 y- (defun ai_abort (app msg)
* R- ?7 d$ k! j" G8 A' S$ S - (defun *error* (s)
* V, z4 y' W1 s - (if old_error (setq *error* old_error))6 F. q& g h' [
- (princ)
0 Q( U( u" e4 b, Q# E - )* ^5 T; v! e, [/ l: \
- (if msg
: Y: t7 x' V% b1 m/ v" } - (alert (strcat " Application error: "/ n* C* F$ b! }$ ]
- app- {# [. a' R+ I7 x. ]
- " \n\n "
" P/ i- ]0 A$ x T) q - msg
) X$ ~% N# z8 ? - " \n"2 W+ ^4 T4 D1 l# Q8 o0 I
- )- A# Y& W5 e6 S; L4 v
- )
) V, t4 D# T9 Z$ K8 P' l - )3 u4 ]5 @ i1 g! p
- (exit); f$ N" @0 y0 J, j# o' ]. }
- )9 q8 D1 [7 [# ]/ t1 l Y! U1 G2 M
- 2 `( V1 n3 ^' B6 T# b& M
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,# h7 U/ b5 a, a/ t1 I, Y5 y
- ;;; and then try to load it./ ]) X8 e5 b1 S9 A3 _% \8 N4 r
- ;;;
t1 v8 _8 p! u4 A! C - ;;; If it can't be found or it can't be loaded, then abort the
/ X# r: O8 ?& w; C8 a6 q - ;;; loading of this file immediately, preserving the (autoload)
0 R' z7 r; l+ L- R8 O7 e$ B - ;;; stub function.0 b4 |* c' H: A: \
- 8 Z& k( r9 Q+ w0 N' z
- (cond4 o3 [3 G; E4 }" _
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
7 x5 J0 K7 E& ^2 i9 M- E
0 a* z, ^/ a; r/ {- ( (not (findfile "ai_utils.lsp")) ; find it
" v1 B; I& j' B6 L+ l- H+ B - (ai_abort "DDCHPROP"
" J0 ~1 U, s) @ - (strcat "Can't locate file AI_UTILS.LSP."
! ?' U; q1 h6 g - "\n Check support directory."))), I/ \, K3 i5 h$ a- W
8 _* l8 Q2 G$ }; Y8 B3 q2 Z- ( (eq "failed" (load "ai_utils" "failed")) ; load it. Z9 W5 e. a5 S0 X
- (ai_abort "DDCHPROP" "Can't load file AI_UTILS.LSP"))) Y0 F# j" m4 A( w; e6 \
- )2 i1 ^" U/ ~& k ^5 ]" K! c2 d
: p( A' \8 w) B# ?8 q1 H8 f6 ]- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
* R- [4 m0 N: i7 a. L1 i v - (ai_abort "DDCHPROP" nil) ; a Nil <msg> supresses9 P* A0 ?5 t, r( M
- ) ; ai_abort's alert box dialog.
- s$ |. F4 E% o B5 J+ F - b" M7 t( r( i4 N* l! }" z9 T
- ;;; ==================== end load-time operations ===========================
3 k- e3 S" i$ j5 M
. Q+ u1 L0 A0 q# n7 H- ;;; Initialize program subroutines and variables.+ r: t. P4 \0 k, e
* _9 F! E+ d' q- w- (defun ddchprop_init ()* N8 }5 Q8 r* a0 P9 V
- # D% n" `$ `- h" u; p
- ;;" \3 p9 F7 `0 d( N5 a
- ;; Define buttons and set values in CHPROP dialogue box 7 Z! \; o: b0 J7 G+ n7 e
- ;;# | ?4 k5 M9 x9 }8 S
- (defun call_chp ()
) c* C8 P) p6 k1 `/ L - (if (not (new_dialog "ch_prop" dcl_id)) (exit))
( l) `6 n) v+ H) g$ j9 D - (set_tile "error" "")" V, x& |. c$ V0 F6 K5 w8 L" q( T
- ;; Set initial dialogue tile values3 k: }) b' u5 m
- (set_col_tile)
1 n# I, }/ I6 E$ e8 P* ^& { - (if (= lay-idx nil)/ f4 M$ g6 P" v) m+ k1 k% M- E
- (set_tile "t_layer" "Varies")( T0 R" s7 D `* g- [
- (set_tile "t_layer" (nth lay-idx laynmlst))8 q8 C' [7 Y1 y$ i7 L
- )* A l. Z0 E+ h$ m- h! c* ]2 T
- (cond
# x; y& O. A+ ]) ?! v. s) x - ((= lt-idx nil)) }' F" W, e7 F7 E2 f, {+ b
- (set_tile "t_ltype" "Varies")
, R( g& @/ C4 D" A W# V) l - )
* J" y5 j3 v. e8 R - ((= lt-idx 0) ; set tile "By layer & layer linetype"$ D# j+ b$ l; E2 z8 W5 `$ Y
- (set_tile "t_ltype" (bylayer_lt))
2 O, O. i2 d/ h c! A - )
3 m n1 P: q& f: {, U - (T
$ f1 u0 y6 F% _3 e" X* w5 d% G J - (set_tile "t_ltype" (nth lt-idx ltnmlst))
- `0 l; a K6 M: g8 {3 y* _ - )
1 J" ^6 e8 r0 w5 N7 a% r - )
) ~- o! ?# Y' I9 C - (if (or (= ethickness nil) (= ethickness "Varies"))
: W3 p% `# R( ]' u3 i$ A3 c0 C4 ` - (set_tile "eb_thickness" "Varies")0 W U3 p- i9 M4 P' x: T) @% y/ `
- (set_tile "eb_thickness" (rtos ethickness))
! j2 c4 F h* a& R. O3 ]) a( m: Q - )
: I h: v Q6 ]2 Y - ;; Define action for tiles
& l; z' b' I* t( _ - (action_tile "b_color" "(setq ecolor (getcolor))")" Z# T$ {$ K3 z- ^( O0 t x
- (action_tile "show_image" "(setq ecolor (getcolor))")# z9 }( a2 N9 o8 E
- (action_tile "b_name" "(setq elayer (getlayer))")/ i* ~4 E5 ] P4 J+ x
- (action_tile "b_line" "(setq eltype (getltype))")
$ Y r- {! y0 z1 m - (action_tile "eb_thickness" "(getthickness $value)")
, j) C( N. h# f" h+ E - (action_tile "help" "(acad_helpdlg \"acad.hlp\" \"ddchprop\")")/ Z' H; l0 `# \4 _% h0 J) o% U: v
- (action_tile "accept" "(test-ok)")9 y T1 @2 X, g6 P/ ?: g4 z. [
- (if (= (start_dialog) 1)
# d# u0 F) @# W# Y8 | S - (progn- E$ O2 O- y! k# x/ m
- (command "_.chprop" ss "")3 s* i7 v2 t( t! x. M; d
- (if ecolor
2 N9 v1 u( k" R: T9 I - (progn1 @( W. H. r; K% _6 `/ l, J( h
- (if (= 0 ecolor ) (setq ecolor "BYBLOCK")). {! r" y- q( E* ?/ l3 C
- (if (= 256 ecolor ) (setq ecolor "BYLAYER"))
7 P1 p( x: B2 t$ d# @5 s- W4 T8 R - (command "_c" ecolor)
# d) C; S& S8 |1 E) |; ]. [ - )
2 e4 e: N1 \" i# w$ n' n: o - )
8 g i" n/ o, v! G - (if (and (/= eltype "Varies") lt-idx)
6 |, L$ M7 K! l - (command "_lt" eltype)' M0 N* d; I8 t9 \
- )6 b! E5 e* C1 W: V
- (if (and (/= elayer "Varies") lay-idx)
2 l( d: a- N$ }8 `$ ? - (command "_la" elayer)2 ~) k& U2 _" u+ G
- ); C* f Y, ]# S! m9 K- m0 @* r2 k
- (if (and (/= ethickness "Varies") ethickness)
* m" a+ n" K+ B3 k - (command "_t" ethickness)
$ T2 N- v) z$ x' m - )
; n% B5 t' n1 r# X' t - (command "")
4 d, E- ]& A# ~5 U3 Q7 Y$ \ - )
" J# B3 C [& o. \" C - (princ "\nProperties unchanged")' ?( u \- j% c1 X2 p! J1 b
- )
/ |+ X1 E& E* a4 P& {7 q - (princ)
$ J4 z9 I A9 l3 c - )
( i: m5 u. E; {+ o' p7 J4 e7 a7 O- S7 c - ;;% A" e8 j& g- B& K* U: G
- ;; Function to set the Color text tile and swab to the current color value.5 l! T$ R. k6 j$ X
- ;;
# }9 v! H9 N0 f7 X - (defun set_col_tile()! F, e7 B: [5 B) k8 }4 i
- (cond # \3 m2 G! @8 P
- ((= ecolor nil)( O# P; ], g3 k9 j1 w. m$ i
- (set_tile "t_color" "Varies")
2 ~2 r2 ~ V" I# Q. n2 `( T - (col_tile "show_image" 0 nil)
. X4 o8 d8 h. w- ~! a5 n( q- e/ V - )1 @+ c" o& X* j( S3 h/ Q( i7 I
- ((= ecolor 0)
& _8 w5 a+ \6 w0 k: P8 ?6 s( m - (set_tile "t_color" "BYBLOCK")
; z& \9 `$ x: H - (col_tile "show_image" 0 nil)
0 A _& E/ u E- F6 Y - )/ e/ ~7 B% F( G0 f2 {
- ((= ecolor 1)
- J$ W2 J. ]. J) K ?2 ?' ] - (set_tile "t_color" "1 red")
, q; @5 M* D1 `3 b0 X% p - (col_tile "show_image" 1 nil)8 V. X- a' c( T) m+ F! Y
- )
$ o$ `8 S: L$ O - ((= ecolor 2)
- x; p& {* G& ]6 c# I - (set_tile "t_color" "2 yellow")0 f6 w ~' m; G% z; l
- (col_tile "show_image" 2 nil)4 s3 w7 {+ h# B4 j' z! K- R3 F
- )0 R4 E# k" o6 w( x* F
- ((= ecolor 3)
\" b+ o' m* X f D8 w - (set_tile "t_color" "3 green")
/ i P1 R- x* |: o* v% { - (col_tile "show_image" 3 nil)4 O2 W- L/ [. u9 T6 {! J1 B- {
- )
6 u6 l3 o; L2 d3 P( Z% h - ((= ecolor 4)6 S. N8 d6 A( I5 u4 g
- (set_tile "t_color" "4 cyan")
U" \2 D8 H1 b7 S/ K! R - (col_tile "show_image" 4 nil)" |# @& S$ S6 D+ A- Y
- )6 X+ [+ J/ u! i' z
- ((= ecolor 5)
. w. [8 J3 s- Q. s - (set_tile "t_color" "5 blue")8 s5 J& B# Q& u) T
- (col_tile "show_image" 5 nil)
& S5 U* Q, |1 D1 d( R - )( p; B6 N+ ~+ ^! F2 [
- ((= ecolor 6)6 p5 P1 E2 Q/ Z
- (set_tile "t_color" "6 magenta")
" ?1 m! `# O6 ?8 O - (col_tile "show_image" 6 nil)
2 e4 W* d2 p. {) v - )# j A& @: K: ?6 b; Q0 o/ l. l
- ((= ecolor 7)
. H1 Y* ]- z8 |! A8 `$ w - (set_tile "t_color" "7 white")8 W T& P7 ?& L1 k7 J! k; g) u
- (col_tile "show_image" 7 nil)
0 W; J' M# V" m" \% B0 Q; p7 h, I - )
- ^( S# `8 p& x - ;; If the color is "BYLAYER", then set the tile to2 R# P0 t; _6 t+ x5 {
- ;; show it's set By layer, but also indicate the
6 ]7 c& ?/ b2 E& ] - ;; color of the layer - i.e. By layer (red); X; O7 ^* b. S" L
- ((= ecolor 256)( ]6 ]+ W) `# X5 q% x' g% |" s
- (set_tile "t_color" (bylayer_col))2 P F9 h$ `$ n5 }. l
- (col_tile "show_image" cn nil)
7 s0 S; y; R1 r r - ): }# b: ^$ ?! y* L/ w
- (T # r. C% r, Y# u3 v B! u6 e) d
- (set_tile "t_color" (itoa ecolor))" k6 Q$ H6 ~) j0 d; H* [
- (col_tile "show_image" ecolor nil)
2 a, T6 [8 R2 {' M+ D% t! h7 \3 q - )
6 A4 d8 n) t; ?3 \, v - )" O8 m+ t" I! u
- ); Q6 R4 N/ n- J( S$ u5 b) d3 i R
- ;;; F( J$ U5 s7 I s. g- Q
- ;; Function to put up the standard color dialogue.
# |' {1 Y- v% _1 u6 M# u& h" B - ;;& |) p e2 _ T" H( P. K) h; m
- (defun getcolor(/ col_def lay_clr temp_color)
3 W' c( E) ^" W# y5 F5 G - ;; col_def is the default color used when rq_color is called. If ecolor
a6 O; @) ^0 h' I* p - ;; is nil (varies) then set it to 1, else use the value of ecolor.
2 q5 |% o( d+ g5 u* u - (if ecolor
1 F0 ^: p ]4 A, t" y5 z - (setq col_def ecolor)( x2 S9 m! n) p
- (setq col_def 1)( [$ V' G, g9 M( t) H) G9 A: w# p
- )2 x& d' [1 L/ u3 a. r
- 6 ]' R# w) j1 g- d
- ;; If we're working with a single layer, get its color
/ K2 V. H9 c/ S9 @% V: Z - ;; for use in the color swatch if the user selects color BYLAYER.' k' O6 C9 P5 J0 ]
- (if (/= elayer "Varies")
M3 b- D$ n' W - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
0 y2 i' z( A, w* \; G - (setq lay_clr 0)
5 d2 j& J* g6 D/ j; { - )" p. |# B# z8 H, w- C
- (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))9 ~% y6 Z1 o& t
- (progn& D/ |& S7 I$ D; ^; p4 T) ~. Y0 ^
- (setq ecolor temp_color)6 Y! P- [) V7 m- j T
- (set_col_tile)6 e$ W4 B+ T5 c' B$ X4 g0 V
- ecolor
4 j& I% E7 D3 Y( g( A" e - )) K7 B- |$ B" ^% X. X( X' H4 M* o
- ecolor. {. r8 {6 @1 Z' L
- )
& M9 o& e7 Y3 Y% d - )
1 c+ K7 T6 s& y2 q - ;;
# N! q& |6 l' u5 ]7 t6 ` - ;; This function pops a dialogue box consisting of a list box, image tile,
/ C6 M; h3 h+ }- u, n$ S& g- ? - ;; and edit box to allow the user to select or type a linetype. It returns ) I6 x, L; a! T0 q
- ;; the linetype selected.& m$ k2 I7 m% K7 i% j: { ?
- ;;
1 \# G% j6 A' T! U' N - (defun getltype (/ old-idx ltname)
- F+ {; n) A! g - ;; Initialize a dialogue from dialogue file
( t3 O5 [+ j" o) k' w - (if (not (new_dialog "setltype" dcl_id)) (exit)), W8 N7 w* |& X$ {, Q
- (start_list "list_lt")1 B F j, _( w+ u; l, w
- (mapcar 'add_list ltnmlst) ; initialize list box
, L9 D' t4 S9 q" i% K - (end_list)
7 M5 k+ K4 n# K& [# G - (setq old-idx lt-idx)! \! S% W) u% D$ Y1 @$ H
- ;; Show initial ltype in image tile, list box, and edit box
2 L3 ?: _# A f- o - (if (/= lt-idx nil); ^8 ^/ ]' F) l. i- O1 y( C
- (ltlist_act (itoa lt-idx))
. @5 ?' t( x+ s - (progn
; L6 A, d# \8 k - (set_tile "edit_lt" "Varies")' r( Y, V# U" K8 p+ f v
- (col_tile "show_image" 0 nil)& {+ \: H, a) z- \ G
- )
# ]$ R* P4 Y+ \7 c& N, m9 V9 F5 X: f - )
0 i* w" J' W. {0 ^ - (action_tile "list_lt" "(ltlist_act $value)")9 g1 {+ |; s2 E4 X1 B' c( {
- (action_tile "edit_lt" "(ltedit_act $value)")1 k: z" s! r1 E6 R
- (action_tile "accept" "(test-ok)")/ _2 W1 @1 h- }; ^6 x( |* s
- (action_tile "cancel" "(reset-lt)")! y+ {+ [' G' }' N2 O) k
- (if (= (start_dialog) 1) ; User pressed OK* {7 p" k6 [1 q. Z$ T
- (cond 3 C9 B9 \4 ]. q* O9 T& V) u
- ((= lt-idx nil)! r6 r) t3 x- I- ?9 k
- (set_tile "t_ltype" "Varies")# ~$ F- Z% P0 O* g _& @
- "Varies", w# `$ u& A4 k, l' |8 u
- ); [- j7 B& ], \& E% Z2 w7 ?' `* _
- ((= lt-idx 0). x" h! B% M+ i4 U( x
- (set_tile "t_ltype" (bylayer_lt))
: v1 z F% L K# V+ O8 c - "BYLAYER"
! V, e) X, e$ o& J+ E, B; Y - )6 L; \; x3 {. N2 h% ?
- ((= lt-idx 1)6 U/ F" |0 T# Y
- (set_tile "t_ltype" "BYBLOCK")
. M- J) R" J3 k9 j& v* l k - "BYBLOCK" t. J9 j& x) Z1 k3 S. ?7 D
- ) Q5 ~- m* b& T7 M1 K) c
- (T 0 h* y! E9 c X& ?* P6 r+ e
- (set_tile "t_ltype" ltname) . E/ e/ t' Q; @8 q! j8 `
- ltname* z/ g9 F. ^4 h6 {* I
- )2 ?3 a# H5 I# v8 ?3 D) o0 v
- )
. P R5 k& i* I" R* b) g - eltype4 B- ?' |1 f( ?5 n& C. {* f; t
- )2 m/ u& G7 k8 T5 A
- )
" ?1 Q+ f; [7 P( J8 a5 J - ;;
7 M. s$ f) c7 }5 |; ~4 Z2 y% B - ;; Edit box entries end up here
7 ^1 ]! A) S/ S2 I - ;;- u! B$ S1 ^! a' H5 a
- (defun ltedit_act (ltvalue)
+ h3 ^/ w( h) g! U2 y, J, w) ~ - ;; If linetype name,is valid, then clear error string,
4 n: {0 K2 F, m - ;; call ltlist_act function, and change focus to list box.
4 M- q' h+ S- f3 ~* q1 _ | - ;; Else print error message.
2 P8 d4 I% A% F8 X - (setq ltvalue (strcase ltvalue))/ X9 a, Q( _8 D$ Y. L
- (if (or (= ltvalue "BYLAYER") (= ltvalue "BY LAYER"))
9 i1 L/ j8 }2 P! P - (setq ltvalue "BYLAYER")1 o# K# o' x: D* H/ {" [
- )
! D }/ @' s% @$ X: _9 D - (if (or (= ltvalue "BYBLOCK") (= ltvalue "BY BLOCK"))" U ]5 `% v& h; s
- (setq ltvalue "BYBLOCK"): O; b! K* F5 m& p# x) l
- )
1 L7 V6 D* t! A, h3 [& t6 N - (if (setq lt-idx (getindex ltvalue ltnmlst))
' v' q5 F1 ^5 L3 B - (progn
% _) q9 g6 T" k4 O - (set_tile "error" "")
( d- M0 f- m: ]0 j: k! a - (ltlist_act (itoa lt-idx))- g- R3 M2 r9 i, h
- (mode_tile "list_lt" 2)
/ V# ]2 Z7 t0 T) S4 N$ O - ): ` D, W* S3 [6 _0 I/ I4 E
- (progn/ O E- K. ]2 _! ~: Z# x6 Y/ u
- (if (/= ltvalue "VARIES")+ l, y3 @2 M* A
- (set_tile "error" "Invalid linetype.")
/ O1 y; V& z8 J5 [ - )
- ]) t9 W& U v; i4 C1 A# ^9 h - (setq lt-idx old-idx)
0 A6 q, g0 W* S- I u9 c0 U. M - ) 8 I) Z( K5 {; b7 z9 l$ |6 d
- )
+ b$ {3 ?! _9 V$ W" @6 u4 ]: k8 O - )
% D2 l( e0 f7 f4 a2 C; b' ?; x - ;;
+ T, S' s4 p- j# Y' [0 O' p - ;; List selections end up here: l, I9 d$ d" R
- ;;
& Q: s! ]( t1 _. O$ U4 K - (defun ltlist_act (index / dashdata)
0 B5 ^' A' g' A- y7 W1 k3 ~ - ;; Update the list box, edit box, and color tile" c5 |# o3 `: b: h. P
- (set_tile "error" "")
2 } ?( P# ] Q5 Q! @' k - (setq lt-idx (atoi index))$ V& L" `4 ?' J# k Y8 Q' m
- (setq ltname (nth lt-idx ltnmlst))! Q% F! y, Z6 a: c5 O
- (setq dashdata (nth lt-idx mdashlist))
6 K, u5 F1 }; g2 }0 ^ - (col_tile "show_image" 0 dashdata)
# i9 S: Z' n" \1 @ - (set_tile "list_lt" (itoa lt-idx))
. n* T" G9 M3 V+ ?& I. b3 [ - (set_tile "edit_lt" ltname)
7 f! k9 ^! m: Y; G. r - )+ i" J! D' _5 [' W; i
- ;;
$ ~) R0 `# E8 B0 B - ;; Reset to original linetype when cancel it selected. o. R, O) k+ q
- ;;) s- o9 S) R+ Z/ o
- (defun reset-lt ()% J* Z' O& ^' e1 p0 d" |# ~6 I
- (setq lt-idx old-idx)3 Y# \ X( H0 w
- (done_dialog 0)
* s: \; ~8 n2 ^0 l& n7 T - )4 L- w/ b4 T/ r% t' J) _5 _3 j W
- ;;' F( f$ ?6 Q( _% T! q6 Y @- \
- ;; This function pops a dialogue box consisting of a list box and edit box to
3 o8 C3 T; z$ N; g# W x - ;; allow the user to select or type a layer name. It returns the layer name / Y& G2 s$ ]2 t9 T* S
- ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the , `" \. q* y) ?( h, I) z7 N: m
- ;; drawing.% f4 p9 G; `7 u2 a4 k
- ;;
) g! R4 h/ U% |$ d- r - (defun getlayer (/ old-idx layname on off frozth linetype colname)
" j- L5 ?( q$ I h4 `- m - ;; Load a dialogue from dialogue file
* ~, W) L3 g! I# N$ r5 l( h/ m - (if (not (new_dialog "setlayer" dcl_id)) (exit))
6 Y& t3 i# V0 g* v" W - (start_list "list_lay")$ }, J1 z( u- t1 {- A. i
- (mapcar 'add_list longlist) ; initialize list box" s9 _( g O! ?' V8 W3 F7 _
- (end_list)
0 p/ `: X3 m8 K8 P6 }7 w) U - ;; Display current layer, show initial layer name in edit
9 y- X" B( N1 t$ a, B5 ^ D i4 G - ;; box, and highlight list box.' ~7 {2 j/ f) F; ?" ~2 A
- (setq old-idx lay-idx)
$ T& i& b7 x8 q T7 P - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))& {6 s8 l% R X1 d8 M
- (set_tile "cur_layer" (getvar "clayer"))& Z3 n2 U. `9 h% @
- (action_tile "list_lay" "(laylist_act $value)")
! U6 }) ~7 b# Q7 Q0 B1 \ - (action_tile "edit_lay" "(layedit_act $value)")
8 {: o- x6 v; S" g5 ^1 I - (action_tile "accept" "(test-ok)")! N: y4 I' Z( Q. m0 _9 S7 Y; Z) R% e/ a
- (action_tile "cancel" "(reset-lay)")
1 M% E" Y% R: `7 U* p$ i - (if (= (start_dialog) 1) ; User pressed OK" N8 C9 y1 C9 Y, N
- (progn1 Z3 P0 g- @1 a, g7 e5 V% P, |
- (if (= lay-idx nil) (setq layname "Varies"))
3 Y: i3 T1 ~& Y7 u. b4 f - (set_tile "t_layer" layname)! u: v) `9 R) [" A
- ; If layer or ltype equals bylayer reset their tiles# [" g9 s( {8 l
- (if (= lt-idx 0)# s( C, f/ U5 q8 w
- (set_tile "t_ltype" (bylayer_lt))
: |, N* \) {2 w# p - )
) r7 P- b! m: b% |2 g: A0 A) o - (if (= ecolor 256)0 L0 O: V% g0 J9 k- f! E
- (progn
; m- K( v& ]2 t, N X - (set_tile "t_color" (bylayer_col))) n2 p# v. D+ Q1 x
- (col_tile "show_image" cn nil)
# s- t$ |0 |3 t5 A. ~ - )
# s' L- m. r3 p! O% R - )
2 p& q* {. n7 {- p9 X* O* f! D$ Z2 R - layname1 i; B2 F# Q# b$ e: c
- )5 E: S& C# a2 r! A
- elayer
+ L' z* J6 O) Y6 P% Y! i: w - )
/ E3 m. V, |+ S - )2 N- g8 ?+ o' c( g8 x& b3 U
- ;;
2 E6 z: b. u. B2 N$ ~! u. F - ;; Edit box selections end up here
* c( G, V! L: V7 E3 w* p8 H - ;;
+ O- C3 V( i, l( C- F8 p" k - (defun layedit_act (layvalue)8 p, S/ m! d, x
- ;; Convert layer entry to upper case. If layer name is
# O3 L: C) p- a# E. l7 Y% x- X- F - ;; valid, clear error string, call (laylist_act) function,4 p) A- u5 [/ N L4 y3 C5 i
- ;; and change focus to list box. Else print error message.
* h# Z& ^0 \2 `) y2 x - (setq layvalue (strcase layvalue))3 K, L9 G" |& u4 T, }
- (if (setq lay-idx (getindex layvalue laynmlst))
- m4 |( Y( ]7 E" X/ Y6 Y$ q - (progn- r% c+ ~$ O' [3 o1 }1 U, D/ e) Z
- (set_tile "error" ""): q/ b8 s. @9 f3 @, ?0 @2 N$ x
- (laylist_act (itoa lay-idx))" g! Y+ X8 _5 d
- )
D! X# y6 R' E9 l8 a& \ - (progn
5 B: ?+ T: c1 c9 r4 e - (set_tile "error" "Invalid layer name.")
1 h- W4 `0 w# Z X, f' b+ D - (setq lay-idx old-idx)1 N; O X1 ]1 I. d# j4 V- s1 l
- )* y: T" m U: ^) I7 n; j, w9 e: p! r
- )
% U# n6 e; n, y/ y - )
) h. T6 c% o/ [) j, {$ a - ;;# w& ?0 @8 K7 @" v% o) O
- ;; List entry selections end up here7 y& u% t* ]4 y2 \" Y
- ;;
, E& T. G' h- c- d - (defun laylist_act (index / layinfo color dashdata)
4 |6 C8 }1 R- ~8 Z4 t% ^$ K4 i - ;; Update the list box, edit box, and color tile& ~( t I2 F& ^8 v
- (set_tile "error" "")7 Z( N& x& u3 M" `% P ]' }8 z9 a' E
- (setq lay-idx (atoi index))* F7 n) @! z7 L+ p [5 c9 D/ ?+ a
- (setq layname (nth lay-idx laynmlst))
/ T- R5 k2 W; T% z$ s - (setq layinfo (tblsearch "layer" layname))
q. g) }$ L6 |( }: p, Y7 v - (if (= (logand (cdr (assoc 70 layinfo)) 4) 4)
* N- U" `4 w# b% `; e/ \ - (set_tile "error" "Cannot change entity to locked layer.")7 N4 @. P) p+ z8 [" @& s7 ^$ J
- (progn
4 K$ T! ^% q: ~" t' v7 W - (setq color (cdr (assoc 62 layinfo)))
8 Z2 {/ L4 a6 |1 i4 D. i) ?4 n, t - (setq color (abs color))
0 F: o1 i; H5 W" a8 _, z4 _1 p2 b, M - (setq colname (colorname color))
: ]* I3 a6 x) y; l. L$ N - (set_tile "list_lay" (itoa lay-idx))5 Z) i3 t2 F: w7 e8 Z5 Y; Y
- (set_tile "edit_lay" layname)# I. T5 Z* a3 S5 b! ?
- (mode_tile "list_lay" 2)! n# _9 c' f; K& J7 d" @+ |1 u
- )' j: R! l9 e9 v
- )
$ s# c$ U7 Q$ ^- x/ C - )2 j7 ~0 d/ F$ O0 \
- ;;
! I5 Z+ {- ^( @" z! _& e - ;; Reset to original layer when cancel is selected
9 a+ @2 M. `0 S5 j: k# E9 A, C - ;;
% E# c/ [3 O& z: O( {3 G5 V; e/ g - (defun reset-lay ()
7 I) `( \# a: I+ |/ _* f* j F - (setq lay-idx old-idx)
4 Q' n& z, s+ i - (done_dialog 0)! C7 R: l- \7 `
- )
% v7 Y. K4 U* O7 k - ;;
! i/ W' m u) A3 M+ i& E$ S - ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a ( O6 K1 @+ b8 h( y
- ;; string can't be converted to a real, this routine checks if the first
/ l; ^# ]( {$ f" n - ;; character is "0". It also checks to see if the value equals "Varies".
7 c) V* i6 j0 j0 | - ;;
l8 B3 A9 u0 E# z* _! H$ h - (defun getthickness (value)
0 d2 P |: a! D) p8 f - (setq value (strcase value))
. `5 e2 F6 z1 V% q& L: m4 U/ ~ - (if (or (= value "VARIES")
3 U' l" u: e7 @( @ - (distof value)
M0 A) d3 E& P/ i/ b6 d - )
) M% j5 W: T- o: e5 [, d. l - (progn
& S! Z: e2 m) k - (set_tile "error" "")) G* v- L( u% R# R7 G1 ^) g8 ?% M
- (if (= value "VARIES")
& I2 t# Z O$ N, X% O+ P - (progn7 `0 B+ b2 \' d; ?: Y- ~. k
- (set_tile "eb_thickness" "Varies")+ v+ v1 i5 Y+ S0 ]
- (setq ethickness nil)
3 k8 Y6 I/ E$ D, f+ M9 ` - )
1 o `$ g( f1 A6 \" z- b - (progn' b( I+ V& J8 ^# z+ T- D, N2 i
- (setq ethickness (distof value))0 v- B: j5 B3 S. x0 [
- (set_tile "eb_thickness" (rtos ethickness))
2 X7 s3 z7 Z$ B - ethickness X; Z6 c3 |% I) H9 v$ T( y: A( f9 q& l
- )
6 B% d4 W4 X! w# A - )
2 }/ z* Y! Y+ l& @* S - )
" K4 U. K0 t& {/ F. J - (progn
: R' q" n* S; s$ W% X - (set_tile "error" "Invalid thickness.")
. K; e) s1 h n8 X3 |: } - nil' X( H- w: U7 \% z$ O: \6 j0 ~- m3 [
- )
* p4 E" h1 M: u; M - )
f, B- J9 B3 \ - )# E7 A! J, H# E. a k
- ;;
! C) A8 D n% f3 x' @! Z2 a - ;; This function make a list called laynmlst which consists of all the layer
t: p4 p- j- Z& K* V0 J. t - ;; names in the drawing. It also creates a list called longlist which ) L: r7 E& }2 K
- ;; consists of strings which contain the layer name, color, linetype, etc.
5 I+ F9 }4 X+ \1 R! ? - ;; Longlist is later mapped into the layer listbox. Both are ordered the & K Z" M/ ?0 D" s* C6 e) |
- ;; same.4 g4 g2 }- O$ `0 f, Z' G
- ;;
5 z: h" t6 M' Y) Y- Y. S6 J - (defun makelaylists (/ layname onoff frozth color linetype vpf vpn ss cvpname
v: c1 q* ~- ~" W) f - xdlist vpldata sortlist name templist bit-70
$ u2 T4 @; {$ g, S5 T2 }$ a - )
) C+ D: b2 d2 m' Y1 H/ ~' y: e - (if (= (setq tilemode (getvar "tilemode")) 0)- J6 S y, O/ I: M* F
- (progn( M7 u B& ~6 F) l
- (setq ss (ssget "x" (list (cons 0 "VIEWPORT")
/ q, i- B% C- F2 ^' ?- t - (cons 69 (getvar "CVPORT"))% Q3 e5 f" U8 ]/ }8 X: H5 }+ h- `
- )' T* K/ b8 L( g
- )5 P! s% @8 `. X9 l s( b$ a. V. P4 p2 ?# j
- )
, K) y3 Q% U& i - (setq cvpname (ssname ss 0))
1 f1 T* ?9 l- | - (setq xdlist (assoc -3 (entget cvpname '("acad"))))
+ _1 i; ~" J8 k9 \9 ^ - (setq vpldata (cdadr xdlist))
1 F, ^3 u. u* A1 I: [5 b1 u# ^ - )
0 E! @) i: _8 g/ p6 v% Q0 @ - ). Z3 g6 |8 a- a1 E+ r6 I
- (setq sortlist nil)7 D f: U) i' [% v. i
- (setq templist (tblnext "LAYER" T))2 ?9 }1 `. I; a# @ s3 R }
- (while templist% o+ ]$ j4 R" J. o+ D/ X8 H" }% Z
- (setq name (cdr (assoc 2 templist)))
$ Z9 J Y8 ~7 x, { - (setq sortlist (cons name sortlist))
/ X* g( t& d, u u: V6 v+ ]2 { - (setq templist (tblnext "LAYER"))
" F( Q' f) B5 I7 Q" x9 K1 A) K5 K - ) R8 x$ Z% h; z/ j4 D
- (if (>= (getvar "maxsort") (length sortlist))
" a m' B9 s- P: M! n - (setq sortlist (acad_strlsort sortlist))
7 `( T% V& j( x6 o - (setq sortlist (reverse sortlist))
2 Z% G9 U3 X" n% T: v! S - )& z. h8 d8 {. Q {# T1 z
- (setq laynmlst sortlist): S, @% n# S' K( o0 k- T
- (setq longlist nil)
$ v# w1 {9 y8 m7 W: y7 p6 y1 O - (setq layname (car sortlist))8 P4 x' C# W9 B; U M
- (while layname
# Y' e6 U- h! a2 Y h - (setq laylist (tblsearch "LAYER" layname))* u6 u* D- e, g8 c" _
- (setq color (cdr (assoc 62 laylist)))
% g4 [! B7 n; y2 r+ D1 f - (if (minusp color)
5 X2 W/ Q& s) E% b - (setq onoff ".")) H2 p8 H X4 ]0 V# k
- (setq onoff "On")6 M ~9 {2 b3 Z9 i H; q
- )4 } j2 g5 s3 B e% G% }; ~
- (setq color (abs color))
1 V/ y0 D( V+ Z0 e& x - (setq colname (colorname color))
4 d1 k/ {6 x. T+ n; v - (setq bit-70 (cdr (assoc 70 laylist)))$ m5 L$ h' V8 S& p
- (if (= (logand bit-70 1) 1)
P7 B# h s( B# |/ s y - (setq frozth "F" fchk laylist)
- P- L" f7 Y5 Q. U* E S - (setq frozth ".")# z) D* U$ b/ |1 T: R- S+ y
- )( H' |4 J! d9 d5 A
- (if (= (logand bit-70 2) 2) k* [+ v# [1 x' R/ L
- (setq vpn "N")
9 z3 d. @# l' [' ]8 Y, X3 [- g - (setq vpn ".")" O1 |4 n2 }# W* G; ]$ f
- )
, Z9 N, ~: S% S( R$ b( Z - (if (= (logand bit-70 4) 4)! Z% U' u0 ~5 L n+ K
- (setq lock "L")8 U; k3 V3 Y, S) Z/ n* W
- (setq lock ".")
; s0 z! r0 h! D( G! @/ u, q1 F - )
5 N! Z" A% v3 y( i- i" U/ U! {- _ - (setq linetype (cdr (assoc 6 laylist)))
) G: R1 W3 h: M1 m! E: k - (setq layname (substr layname 1 31))0 t6 m. w/ L0 `( z
- (if (= tilemode 0)
% a5 Y2 o# ]: p8 a) W6 ~ - (progn
/ E; i* ^1 z: P# \ - (if (member (cons 1003 layname) vpldata)" X$ U* M6 x; h7 M4 J! U6 U) }
- (setq vpf "C")
; i* [* N$ o$ |6 d: Q* `- T( F; L - (setq vpf ".") ^; ?7 d4 `7 o5 l, s2 j/ L+ @. _
- )
0 x8 F% _7 J/ V: S: K0 d - )
4 p; k/ _$ B# L# }- M - (setq vpf "."); g" u# E8 g, c9 L# X. r
- )4 ?6 v& v! }: q; ?$ W' C* Q& {
- (setq ltabstr (strcat layname "\t"$ V8 W) @# }( ?0 b/ `
- onoff "\t"
. W2 }! b1 v" y; p6 g E - frozth "\t"
! R, d( i+ R0 E% l - lock "\t"
_9 Y2 E" H+ C( | - vpf "\t"
; o7 }# e7 d! {7 I M. x - vpn "\t"
+ u1 _# d! B% r4 h( r - colname "\t"# f" M) e2 ?" [7 n3 U1 L' @( w
- linetype
/ s+ z( M4 G) Y - )0 t4 N& H" V: \
- )
( \3 ?5 |7 H5 q - (setq longlist (append longlist (list ltabstr)))
6 }& J I" u7 V: } - (setq sortlist (cdr sortlist))2 k# q7 r) |8 S( |9 f
- (setq layname (car sortlist))" V) b$ d$ F, S, Z% x' ]! M
- )
# c( x M# a8 W+ u7 u9 k - )+ C" ~8 `2 F. A+ @" D; R
- ;;- |$ k6 }& ?! d2 \1 w. H8 O1 l
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of ! x9 K _- f) F
- ;; linetype names read from the symbol table. Mdashlist is list consisting i) N$ d9 t0 E$ ~+ N4 j" O
- ;; of lists which define the linetype pattern - numbers that indicate dots, . H$ Y5 ]6 G* e; N8 D
- ;; dashes, and spaces taken from group code 49. The list corresponds to the 5 m1 i% Q- E* i# S* x m
- ;; order of names in ltnmlst.
) P; w, H: G w z/ U+ E - ;;
: E. M( `! p$ L - (defun makeltlists (/ ltlist ltname)4 l$ M, h7 A$ T& c
- (setq mdashlist nil)% x: O W7 e d9 p2 X
- (setq ltlist (tblnext "LTYPE" T))2 i- a) D, I& w& A! o: m8 G }1 z
- (setq ltname (cdr (assoc 2 ltlist))): x+ D; r3 v5 f# q/ ~! ?
- (setq ltnmlst (list ltname))' K, X1 h5 u6 ^7 X+ U
, V/ M# m2 F+ u# g/ C6 `- (if (= ltname "CONTINUOUS"). e2 N$ k( z6 ~, H2 X1 o
- (setq mdashlist (list "CONT"))
5 \- d0 v* v! l" \0 h7 f9 p - (setq mdashlist & S1 X4 @+ U2 ]9 K8 r
- (append mdashlist (list (add-mdash ltlist)))
: @% v# n) h! }- h - )- A! H O6 y- j3 b8 Z) e* B
- )
. N& Q' H& H, d$ @6 ~! V - (while (setq ltlist (tblnext "LTYPE"))
8 S* z8 b; B0 O) h3 P0 i - (setq ltname (cdr (assoc 2 ltlist)))
8 l- S) N) Y* C2 b# n% Y" ?1 M% G - (setq ltnmlst (append ltnmlst (list ltname)))
5 E3 d: q% `7 v. A* V - (setq mdashlist
) B9 ^9 @9 F3 N5 E$ k - (append mdashlist (list (add-mdash ltlist)))2 Y1 Y$ c% o+ s# p
- )1 j- g v* @9 \1 ]
- )
8 v( `8 A. ?' ?; a - (setq ltnmlst (cons "BYBLOCK" ltnmlst))" \9 j' t, ?: b- X9 ?/ v
- (setq mdashlist (cons nil mdashlist))
2 d5 P/ h3 F$ d5 P9 {- e - (setq ltnmlst (cons "BYLAYER" ltnmlst))
: f. p: ]9 P; V; q, b) M0 } - (setq mdashlist (cons nil mdashlist))
. p/ ^) ~0 `+ h, ]- R - )
5 J2 S) r4 y) F4 T1 d, J - ;;
9 ], J& _4 h, G3 j - ;; Get all the group code 49 values for a linetype and put them in a list & I1 w, N/ o2 s# O; ]8 F
- ;; (pen-up, pen-down info)' p& S- S' R7 I
- ;;
+ c6 Z6 ?! Y: V - (defun add-mdash (ltlist1 / dashlist assoclist dashsize)
1 ^# w. y+ \; R* h2 Z c - (setq dashlist nil)$ Y$ p/ ^& t6 [ u3 m
- (while (setq assoclist (car ltlist1))
J2 A W( C H$ ~% ~ - (if (= (car assoclist) 49); x: W7 l/ \7 z8 P
- (progn, i* Z. g+ U4 J3 `0 m
- (setq dashsize (cdr assoclist))+ l3 T$ @8 T5 d( L
- (setq dashlist (cons dashsize dashlist))
5 i& J) F5 I4 g6 J& D \ - )
/ j) w( G, x1 o/ @& d( g" i8 T3 r* A - )
' _* P( C! Z W6 e$ I& H - (setq ltlist1 (cdr ltlist1))0 k' T" W( l. f* L
- )3 M/ ^( T* K; S: T
- (setq dashlist (reverse dashlist))
) Q5 r5 f6 x1 k( d, o& Y, i$ v - )
7 u3 t/ p/ d% t1 B* J7 N, O8 H b - ;;! o, _) a" w; B, u# a3 Z" X
- ;; Color a tile, draw linetype, and draw a border around it
$ N1 L2 o5 t* Q/ f5 n- e - ;;
5 F- E6 a- Q9 Y d# j/ f8 o4 r6 W - (defun col_tile (tile color patlist / x y)
, W, k7 p' W% N9 D - (setq x (dimx_tile tile))4 H t6 S u' S
- (setq y (dimy_tile tile))
" h6 Z' K' w. c& L1 T' e2 @+ N+ z - (start_image tile)
$ B3 t4 G r0 y! H$ Q* T# \ - (fill_image 0 0 x y color)
0 @7 f4 d1 y5 `! ~' W% [' o& v2 `: i - (if (= color 7)
0 [9 y! Y3 ^8 g! T1 v" } - (progn' h- O' Z- W7 o1 P7 E6 Y- g, F
- (if patlist (drawpattern x (/ y 2) patlist 0))
' I+ _0 n' e9 _' b$ F m - (tile_rect 0 0 x y 0)
$ V' _* ]% u1 z) Z* I8 G - )
: C+ r2 P$ F0 E* ` - (progn' }" N# W, ?/ I9 L' X6 D6 c0 c
- (if patlist (drawpattern x (/ y 2) patlist 7))
; V: D2 x* |/ ~( Y9 [ - (tile_rect 0 0 x y 7)6 [5 F( L9 L; j9 c* @( F
- )! r, q! L4 a/ L0 {( Q( j, B3 Z3 G
- )
. J) k+ @7 k) M: F m0 x - (end_image)( r. v7 x" @. N" n
- )
3 U. Y& F- f9 z! z0 v- X) Z - ;;, N9 Y) |) J' a9 L2 u# n
- ;; Draw a border around a tile% [$ i& O, U& [; @5 a1 ` k$ Z
- ;;. [# Y+ J9 x9 X; {( S8 x* z6 I& Z
- (defun tile_rect (x1 y1 x2 y2 color)! s( y/ H8 c; z0 ^
- (setq x2 (- x2 1))
% n8 ]# ^, _! V% P - (setq y2 (- y2 1))
$ b) V4 |1 `5 U, I) p) I, e - (vector_image x1 y1 x2 y1 color)
( L/ W! E- {. A9 n& d$ B - (vector_image x2 y1 x2 y2 color)3 M$ T4 ^, T9 U/ X
- (vector_image x2 y2 x1 y2 color)
6 |( Y( u" Y6 u6 L! H - (vector_image x1 y2 x1 y1 color)5 v+ |* S" x. ^6 ^* P: C
- )1 u% v, `" z# Q( ^) R7 r* @
- ;;: z. l7 F' G6 p5 @
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
6 I, F8 c5 \' D8 K# { - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a
! h- [4 l* p6 R% o - ;; list of numbers that define the linetype, and color is the color of the + V; Q6 D! _% m& s4 b* G
- ;; tile., Y% n ]8 x7 Z
- ;;
, P l" s! J" q7 Q# X - (defun drawpattern (boxlength y2 pattern color / x1 x2
* I* c" Q7 v8 B9 u/ p - patlist dash)# k1 F0 ~. n! s! X$ W
- (setq x1 0 x2 0)
6 N* V1 ]/ a, X5 ^, v - (setq patlist pattern)! a& W3 T9 p1 N+ E8 s
- (if (= patlist "CONT")
* |" i, x0 j% \7 h - (progn $ ~8 K% s# N3 G
- (setq dash boxlength)0 b$ S4 d7 o2 p5 H, P$ s
- (vi), t/ j `0 r/ v$ J4 U
- (setq x1 boxlength)
3 `0 a% J- j; y - )$ ^& g. v9 W) i, ~8 Q
- )
! y( f! g. }/ n- p - (while (< x1 boxlength)) p2 @$ l; o5 r# {" [+ S5 l) j
- (if (setq dash (car patlist))
0 |+ V! @9 U2 y' W/ @) l0 |$ E - (progn% D% W: t8 r, }
- (setq dash (fix (* 30 dash)))
% W3 X+ K4 P5 }3 u - (cond
8 P5 U0 F: O) _: ~' Z - ((= dash 0)
; C0 _/ S( f- @6 |3 i - (setq dash 1)
0 H2 b6 Z2 G( Y3 t, G# k - (vi)- P! V) U+ `+ k6 v' |7 {
- )% u! L! p# R: F3 b. c: e# U. h
- ((> dash 0)
+ q- _1 g' o1 Z - (vi)
[& g" Q% Y8 S; n - )
& R) [% q% E+ O7 ?$ D# Z: G - (T
0 V9 d* y0 B8 _ M( V1 Y9 r5 ~ - (if (< (abs dash) 2) (setq dash 2))
3 E8 l% _: @3 D) a - (setq x2 (+ x2 (abs dash)))
- g0 z/ G; `8 x- g2 T - )
" G# a% i& b# O7 B4 P1 P - )( K9 e. c8 M W& J0 C4 x8 d
- (setq patlist (cdr patlist))
- T$ z3 u$ i! @; ~$ x3 V - (setq x1 x2)$ J! N' f a0 N: x& V+ [
- )( t* u- \! c" A
- (setq patlist pattern)
. e7 {' A0 I; w- |5 m k7 Y - )
/ z! @) m" m V9 `! s% N& q - )! F$ H1 p% I D
- )
, K) l L" d0 p! g& d% T- f - ;;. U o, l' U* T" C7 `3 @2 C& w
- ;; Draw a dash or dot in image tile
2 i+ r( M5 u A! W - ;;
4 z j% \9 E, ~0 ~. E( k8 w - (defun vi ()6 p% e% `+ I. F( K- Y ~: \0 i/ ~
- (setq x2 (+ x2 dash)); K7 b% g+ H+ r. c
- (vector_image x1 y2 x2 y2 color)' m# y8 h- K1 D) G
- )
; V* F+ s" \7 J+ \; x - ;;) w7 W M4 N; i e* X
- ;; This function takes a selection and returns a list of the color, linetype,
! Q( ^- ^5 P/ S- M/ d+ a - ;; layer, and thickness properties that are common to every entities in the5 T9 B+ S8 y: l \8 u" R
- ;; selection set - (color linetype layer thickness). If all entities do not ( H6 m$ i6 u, v) U! P! M- ?
- ;; share the same property value it returns "Varies" in place of the : _( A( r7 M/ {) v/ B
- ;; property value. i.e. ("BYLAYER" "DASHED" "Varies" 0)
4 @6 I8 P( K5 j g. H1 v. h - ;;# h4 K5 F, u+ w: ^9 u+ n: T+ k! k
- (defun getprops (selset / sslen elist color ltype layer! k7 M* ^2 }$ r; |* g! s
- thickness go chk-col chk-lt chk-lay chk-th ctr)
) u# ~' A0 x" E# E1 A" f& `2 Q - (setq sslen (sslength selset))
/ Q; q# D) U# b2 @ - (setq elist (entget (ssname selset 0)))6 ?" J& G& [" K
- (setq color (cdr (assoc 62 elist)))& R" q) A" _4 c: x8 f4 w
- (if (not color) (setq color 256))
8 L( P4 N4 Y1 Q0 Z) { - (setq ltype (cdr (assoc 6 elist)))
) K. C+ ~0 e4 o# `% ]* y - (if (not ltype) (setq ltype "BYLAYER"))
7 U7 a# h$ c* ^ M% _ - (setq layer (cdr (assoc 8 elist)))8 a b$ |8 h7 }0 P" w1 W! r1 C' N
- (setq thickness (cdr (assoc 39 elist)))/ b8 W j. l1 s- p3 n
- (if (not thickness) (setq thickness 0))
' o1 m* V: N1 O0 R1 I3 ]7 k( }. l - (setq go T chk-col T chk-lt T chk-lay T chk-th T ctr 1)
7 w* d- k& O9 M
/ D' b6 Y7 R9 Q- ;; Page through the selection set. When a property+ t9 |- j0 w7 P7 b# k% e
- ;; does not match, stop checking for that property.
4 t5 r- V: ]! F R7 m' p - ;; If all properties vary, stop paging.
% c% L% P- O0 d9 F - " h1 }0 }& z2 t5 Q
- (while (and (> sslen ctr) go)
. u" n. U- r+ x& d! d - (setq elist (entget (setq en (ssname selset ctr))))' ^/ K2 K% c k/ L0 c" B
- (if chk-col (match-col))- a5 R* m2 q+ q1 z* o
- (if chk-lt (match-lt))
7 A2 {8 o1 R# @3 D. O - (if chk-lay (match-lay))
6 M& p c: m0 l. s8 L - (if chk-th (match-th))
$ N, D/ h2 v! |: I. H4 h. H - (setq ctr (1+ ctr))
; ?8 a) W" w7 I6 P - (if (and (not chk-col) (not chk-lt) (not chk-lay) (not chk-th))) B9 I- \3 [" C* }' _ ]
- (setq go nil)
/ h( S! Y( z# j3 H9 b# p. R - )# R, x+ T6 _7 G( z+ g
- )- S+ h6 E' b) [8 {
- (list color ltype layer thickness)
8 N$ T6 k$ W. x2 v9 d& p& ~ - )( A ]0 w2 v. _$ x( j" A$ g% X: ?
- 1 e& _4 l% b2 p
- (defun match-col (/ ncolor)7 e6 m" o- S* e5 p6 H, Z
- (setq ncolor (cdr (assoc 62 elist)))
) `4 d+ @% g4 s+ H2 a4 [; c0 A - (if (not ncolor) (setq ncolor 256))+ C/ U/ s4 C3 s
- (if (/= color ncolor); `: s3 z) k6 M5 L% t
- (progn! |; n5 }5 p! M u* e" o8 ]% U; k; H
- (setq chk-col nil)4 T+ t. }- c) B: {! x
- (setq color nil)$ E) b( g" o2 F* a1 f' ]) \
- )
' {$ q* N a/ e& d. R# @$ x8 T+ r - )
/ O- I5 x1 C4 h - )
( M9 J o% V( |) ~ - ' [6 {) t- v9 W) ?3 C0 b7 \8 q
- (defun match-lt (/ nltype)6 h- S9 T* X5 \- E7 z
- (setq nltype (cdr (assoc 6 elist)))
/ _. b# {& m, I' _, } - (if (not nltype) (setq nltype "BYLAYER"))
3 x9 ^$ n7 r9 T' H4 o1 { - (if (/= ltype nltype)4 G3 M4 R2 p; I/ m+ T: M- r" b
- (progn. V' s; \; R0 E! D8 e: r
- (setq chk-lt nil)% v- o) B7 e& E2 H0 k `
- (setq ltype "Varies")1 _3 W2 T6 d7 j [0 _
- )
& d' G2 k Y ^9 {. v) D - )
4 @) X1 a1 ^ C: y1 {: x3 U - )
5 K) }# s6 [/ k7 p ~- C - ; P; V, ~) `4 E+ R3 W# B
- (defun match-lay (/ nlayer)8 M; z [. o3 R! T5 R) i
- (setq nlayer (cdr (assoc 8 elist)))0 W/ f3 U4 }; l3 H, x
- (if (/= layer nlayer)
2 \" n; C* p0 l) U - (progn% q9 s% \1 ]& \ K/ h
- (setq chk-lay nil)
$ R) Z g# F, u! W5 { - (setq layer "Varies")
8 F2 G) u. q$ x8 f6 t - )
7 M2 |5 }; E2 q/ E - )
4 h5 g, z6 l f% v - ). ]9 \( ~. k0 x" g3 [, R7 [
5 R) Z5 L8 O: a- (defun match-th (/ nthickness)
+ n" M2 c) F# x! A" b) s5 s/ A - (setq nthickness (cdr (assoc 39 elist)))/ L- `, s& S; }2 u0 G
- (if (not nthickness) (setq nthickness 0))& b/ }4 Z- \6 @' s: p
- (if (/= thickness nthickness)
8 k$ A% j( ~$ q+ ^ - (progn; s( E( S3 F# v
- (setq chk-th nil)
. a$ H0 ] y. f6 M - (setq thickness "Varies")
% G. S' {9 M0 F4 H - ), Y9 ~5 _5 T* n R' G: Y0 s: X1 X
- )
3 Q! h2 h) r E' h0 Z - )4 M3 z* S9 O# Y% t: W
* Z( X, K0 o7 E/ Q- _+ M! V# U- ;; {6 E5 Q$ g- S Z% F& g
- ;; If an item is a member of the list, then return its index number, else 1 ?' r9 T8 N' A: P/ O
- ;; return nil." I2 P& H7 Y7 I( S5 ~5 E# P2 p" G
- ;;
5 B3 |: ^# t1 B6 }6 n5 o0 E - (defun getindex (item itemlist / m n)) ~- i3 X& h( U/ H, d
- (setq n (length itemlist))
9 U8 U/ g8 u7 t - (if (> (setq m (length (member item itemlist))) 0)) @# m9 b4 y! p& }( Y( l
- (- n m)# R* ^3 f* h5 c/ P7 J) q' f
- nil
9 R/ t1 P6 {; C$ `" Z! T" g7 e t - )8 r$ ~+ [4 Q2 V- e( c! q/ q {! o
- )# {: L* K4 o5 w$ q. S# ^
- ;;
$ C; x4 i8 ~' S - ;; This function is called if the linetype is set "BYLAYER". It finds the 2 e. h: u. A) D" E8 Y3 L6 g0 l- s
- ;; ltype of the layer so it can be displayed beside the linetype button.
) Z2 l x. E; m$ F ?' o" O2 v - ;;
5 U, F; K/ W5 Y5 @" |( X - (defun bylayer_lt (/ layname layinfo ltype)6 x( J6 P; b5 `1 ^; L
- (if lay-idx }: Q7 b( M3 h) a" C
- (progn
: W; Q) ?( m) c& X5 h3 ]$ G9 q; D4 z( L - (setq layname (nth lay-idx laynmlst))
" P5 E$ D% y0 P1 j$ P6 j - (setq layinfo (tblsearch "layer" layname))" s' ^. b0 N+ i! W/ N0 ?
- (setq ltype (cdr (assoc 6 layinfo)))
# F# r, K- l1 I/ S+ ?8 U2 T - (strcat "BYLAYER (" ltype ")")
L U) B4 A1 b$ _; e1 d+ Y - )5 |0 A8 X. O* b
- "BYLAYER"
( \& t/ B, k1 `/ e - ); N# V) V, J( K8 F) Q1 I
- )
. \( ]" T1 S7 W2 Y1 L0 s - ;;" v0 j% I* ^. m ~( T' m- h9 f6 @
- ;; This function is called if the color is set "BYLAYER". It finds the
# Z3 d3 I1 d0 ?+ a% h - ;; color of the layer so it can be displayed beside the color button.
+ u; G1 P/ c# K0 @# T* h - ;;
+ \' _$ g8 _2 {3 m% G7 L5 W - (defun bylayer_col (/ layname layinfo color)- Q$ K; o1 b7 l6 h# u
- (if lay-idx- }, L* L0 F8 c5 A" V% X* `- C1 f
- (progn5 I! v: T: m0 r3 }5 j \
- (setq layname (nth lay-idx laynmlst))
0 ]4 K+ B+ ^- L6 f - (setq layinfo (tblsearch "layer" layname))
1 `+ l) g( t% d1 e* p - (setq color (abs (cdr (assoc 62 layinfo))))
# q. M$ O/ K) G. K) l# p - (setq cn color)
% V4 `7 s" K3 t% \ - (strcat "BYLAYER (" (colorname color) ")")
* b/ D, n4 p- V/ `, \0 x - )3 G9 A7 R- `" f: d( v$ Q
- (progn
- K8 t' U4 z, @% n% L' S/ g - (setq cn 0)
! ^( V$ ^) {$ V9 |. }) O# a9 \ - "BYLAYER"3 k0 {# w! z I
- )
$ d+ t! A8 j n* R - ); }( r; K9 `; Y7 l0 y6 Y
- )# t6 t+ {' u4 B/ e3 i: I
- ;;
9 N. q6 K6 b) d! v/ X - ;; If there is no error message, then close the dialogue* N M' \0 a" | l0 L
- ;;
0 T* x# g* q5 {: S - ;; If there is an error message, then set focus to the tile9 o! r q9 q$ Q' h6 _
- ;; that's associated with the error message.
6 e( v" \5 c7 t4 i2 l8 M' h" W, F - ;;
2 f# V8 K5 e$ ^% T - (defun test-ok ( / errtile)
: O; _1 W N/ y5 Z - (setq errtile (get_tile "error"))7 H/ f6 o2 |4 C& L! f3 Z( N" k
- (cond) ?4 }2 k1 T8 o% y
- ( (= errtile "")* v# T! Z. K0 J. J8 P. X
- (done_dialog 1)) I* U! `( a, L5 m# p2 r( V" r9 C
- ( (= errtile "Invalid thickness.")
) ^( S, H+ K& }1 K; O- S7 ? - (mode_tile "eb_thickness" 2))' J6 V8 i+ C; ^- \
- )
8 r! [) z( I* y1 H" w4 u* ^ - )' @% A. |8 i( g4 t6 N; }3 K
- ;;
; k$ f7 T4 q) q( M+ K W' C - ;; A color function used by getlayer.0 C7 _, z9 Q5 C, B( p! P
- ;;5 M# _6 |7 V0 W9 V3 O; W
- (defun colorname (colnum)
4 M) |/ N$ l" [ x) Z/ E. l - (setq cn (abs colnum))
% G4 ?9 n! \3 U* m9 W+ N& C" o" y - (cond ((= cn 1) "red")$ B+ h I c: U( D, W
- ((= cn 2) "yellow")
% t/ K" x. Z) f - ((= cn 3) "green")7 S6 ]) L" ]4 E9 L; z
- ((= cn 4) "cyan")- V% x N& Q9 s
- ((= cn 5) "blue")9 M# d5 o6 u5 I; M1 M
- ((= cn 6) "magenta")) |5 ^' i( @+ ~! C- C7 v- ~" G
- ((= cn 7) "white")' b/ x: H2 g" y; `6 z2 C& M6 N
- (T (itoa cn))
; o/ F# M2 s/ V/ Y - )
9 w/ Q+ i5 M# _0 R6 d3 h - )
" a+ T g9 [$ Z* `* ?1 b
, L) Q, M" z: _, {4 o v1 ?- ;;; Construct layer and ltype lists and initialize all. g# R, l% E1 ], D
- ;;; program variables:8 z7 T$ r: q w/ [# B& e
- 8 Y0 W# F6 m; f. h6 [
- (makelaylists) ; layer list - laynmlst
: ]9 ?& f0 j! I- \* ?! P. e - (makeltlists) ; linetype lists - ltnmlst, mdashlist2 [( K" @) |8 M Z0 Y' n' k/ \
- ;; Find the property values of the selection set.( R8 x/ U$ K: ]2 J
- ;; (getprops ss) returns a list of properties from: w( }6 r/ w8 S
- ;; a selection set - (color ltype layer thickness).
' b3 ], S( ^3 _1 Z5 V; c - (setq proplist (getprops ss))6 a3 X, Z8 l& u' \
- (setq ecolor (car proplist))
S9 v6 J: s4 t5 j: ?8 H - (setq eltype (cadr proplist))
: m' D: A5 V% G) V- B - (setq elayer (caddr proplist))- G9 e- z& }: x! c1 o# [
- (setq ethickness (cadddr proplist))
; M A" d A/ Y# I6 w - ;; Find index of linetype, and layer lists# a3 ?5 w8 c( Y* {4 V! ^) Y5 j
- (cond
4 I4 J: c" I0 h3 J, H - ((= eltype "Varies") (setq lt-idx nil))
) v) y6 o( x5 A& }# O$ F - ; ((= eltype "BYLAYER") (setq lt-idx (getindex "BYLAYER" ltnmlst)))
7 w- S7 u- r- J' p3 T) K: }( U - ; ((= eltype "BYBLOCK") (setq lt-idx (getindex "BYBLOCK" ltnmlst)))* _; u/ P& `; E
- (T (setq lt-idx (getindex eltype ltnmlst)))
# R+ f2 ?5 V' ^, M - )
& X) {9 M: g& ^5 ], e' H5 x - (if (= elayer "Varies")
) X$ P$ I @8 B/ j1 j, i% t - (setq lay-idx nil)
; w" ^) R5 J( _( N - (setq lay-idx (getindex elayer laynmlst))
9 n* k* ^( a* y! D( }: V3 Z - )
! l3 H9 E! J, g; g# N1 C - (if (= ethickness "Varies")3 }4 K; q& R$ [/ B8 W
- (setq ethickness nil)# p: ]. F" [4 k0 U& h5 [7 B0 Q
- )6 ?; j. F, }* T4 g- b6 ~; y* e* L
- $ r" I/ O5 Q# P1 e# s8 t
- ) ; end (ddchprop_init)$ p8 Z7 j2 C5 q) b$ S2 T0 N5 J
, L- R8 h4 C% t) p G% Y7 K- ;;; (ddchprop_select)3 G6 n4 s+ b# t- ^
- ;;;
/ `- R7 h6 v" a _, V' J4 i - ;;; Aquires selection set for DDCHPROP, in one of three ways:
$ F1 J0 V: h S" c1 W5 T# \+ C - ;;;; ?8 N( s6 e; b7 d8 `5 Y. G
- ;;; 1 - Autoselected." Y- w q. v6 ^* |8 R2 @
- ;;; 2 - Prompted for.1 e" g0 ]6 C8 w5 ~- _/ C( h
- ;;; 3 - Passed as an argument in a call to (ddchprop <ss> )& Q0 h" z% y- K9 A; U
- ;;;8 F& b4 ~- s: J& \+ b! j
- ;;; The (ddchprop_select) function also sets the value of the: N! Y; L" f9 I
- ;;; global symbol AI_SELTYPE to one of the above three values to
& H/ T. O7 @8 V) t( O4 a1 c v( M - ;;; indicate the method thru which the entity was aquired.
- M& z6 z0 m X1 E3 J6 u$ s0 E
) Y& \9 n5 g# v' e+ V+ T- , w- D' \' q- R$ s5 Y; A3 T
- (defun ddchprop_select ()
/ s, M/ F G/ }2 W5 B6 \; N# D5 q - (cond+ N a8 B4 l9 ?% k( y, o5 } N
- ( (and ss (eq (type ss) 'pickset)) ; selection set passed to
# v8 g: ~% o4 O; E4 s+ G - (cond ; (ddchprop) as argument- _: v) X, w* E3 d8 u8 ?# S1 s
- ( (not (zerop (sslength ss))) ; If not empty, then6 r0 ~; l* b' |, {: P. c% _
- (setq ai_seltype 3) ; then return pickset.( e) e3 }& K V4 q! a, R
- (ai_return ss))))1 i) |# n7 |% h: }; ]1 X; R
3 t$ e; E |6 q7 v7 N. |, K- ( (ai_aselect)) ; Use current selection
6 }/ C9 x4 c" Y+ Y - ; set or prompt for objects
9 ^* Y2 e; x5 c0 R3 D - ; x' j; a; K0 w, g9 v
- (t (princ "\nNothing selected.")7 r2 b9 G; P2 |/ p* F
- (ai_return nil)). y9 ]5 p, G* i+ V& L" C8 R- c
- )
, i2 P- x8 ?1 S1 N' q - )+ w- A$ i: m% ]
- 6 V5 B0 @, Z& \8 Y8 V+ H( d
- ;;; Define command function.4 k) ?4 r0 L( @
- + X7 s$ x' `3 \
- (defun C:CH ()
/ X' l: b. ]7 ?+ T- h3 H - (ddchprop nil): d: F% j4 ^2 v, y D
- (princ)
- @4 {0 ? j9 F& V - )
4 w5 X2 s8 C3 C/ { - ' z c0 W6 ?8 M0 a: n- n* C |
- " [$ H5 n5 n8 V! B0 f# U2 p/ t
- ;;; Main program function - callable as a subroutine.
8 u) Q5 y1 n1 u7 W. K4 u! A - ;;;
2 `' ^* k/ q) o" F8 a# Z2 W - ;;; (ddchprop <pickset> )( y) Q+ a! n$ A
- ;;;
, a% o j) z& _0 F! o - ;;; <pickset> is the selection set of objects to be changed./ [3 ^ A& {8 J, Q8 X
- ;;;
+ w; a8 V, p$ {' F, ` - ;;; If <pickset> is nil, then the current selection set is, Y [4 K4 j0 [7 S u* ~8 y0 ^& L
- ;;; aquired, if one exists. Otherwise, the user is prompted, G0 Z! V0 u7 _3 @, X4 a
- ;;; to select the objects to be changed.& N# Q/ W3 L9 [- ]0 C; R, y
- ;;;
4 b# a% W& a l7 N. s- [6 h - ;;; Before (ddchprop) can be called as a subroutine, it must
0 a/ s1 U0 U. ~+ S" Q0 b - ;;; be loaded first. It is up to the calling application to3 z. ~; w' \) g S2 M
- ;;; first determine this, and load it if necessary.- q, ~/ J" @2 t m( d) ?" I
8 w4 u; E7 h' x: T- K4 J. D% x- (defun ddchprop (ss /$ s7 }5 u* \3 L. q
- z* t: Z2 @7 Y3 V5 I. N o5 h
- add-mdash ecolor ltedit_act s
2 I* M5 \( a# L* ?3 k: m - assoclist elayer ltidx selset) d2 `) ], z- E4 J3 M1 x
- bit-70 elist ltlist set_col_tile! `. z& G6 k$ I6 p1 F% P- Y: i& K
- boxlength eltype ltlist1& _' d7 O* R; W' \1 T; ~- x
- bylayer-lt en ltlist_act sortlist
. P0 d/ L( }1 R$ E! K - bylayer_col ethickness ltname
$ E9 B6 Y% ]+ k( X* b" {' S - bylayer_lt fchk ltnmlst sslen4 r8 o5 P* Y' H0 M% R- T* y
- call_chp frozth ltvalue templist
! [0 x( F; E4 }& s( L - chk-col getcolor ltype temp_color
: k$ G) F1 |: N5 J - chk-lay getindex m test-ok9 h( \8 H1 [2 z4 i7 o: X, e1 J# `
- chk-lt getlayer makelaylists testidx
3 Z+ W: G( j1 F- X - chk-th getltype makeltlists testlay
6 c. j- d# M8 K$ p - cmd getprops match-col th-value
/ \0 N/ R. Y, ]+ e) [* I - cmdecho getthickness match-in thickness/ s: }2 e- u8 T: V
- cn globals match-lay tile
0 D' w) Y0 E- V' w A - cnum go match-lt tilemode
) k. S+ s7 X' J/ Q - col-idx index match-th tile_rect
5 c7 l. h. e* N - colname item match_col vi
3 S' \) b( M! Q7 ]+ K& R - colnum item1 mdashlist vpf
" p4 @$ u4 F/ [- v - color item2 n vpldata9 L: H3 i& q: X2 @( \8 f
- colorname itemlist name vpn: Y7 `6 x8 Z7 C. k# j
- col_def lay-idx ncolor x
. Z. Q# W9 l* {; L. P+ c7 x# v - col_tile layedit_act nlayer x1
6 C5 S, |3 }" T - ctr layer nltype x20 a: x& d* t: z+ O, I. R# x' U8 y
- cvpname layinfo nthickness xdlist
% O+ {4 I. v+ N4 S9 a8 [* ]/ ~ - dash laylist off y
! X% j) ?% R: D y - dashdata laylist_act old-idx y1
! ?- a* U# ]9 m. R7 y - dashlist layname olderr y2
, r0 X p$ j- v3 r - dashsize laynmlst on undo_init! z5 D+ w, p4 D9 T
- dcl_id layvalue onoff
8 u0 F+ O, t$ g8 B1 L - linetype patlist
) G* b7 W3 m' f; G - ddchprop-err list1 pattern% W2 Q# ^% y' G) s
- longlist proplist" ?& y: ~' L- ]9 [) |' f
- lt-idx reset-lay
5 W: @8 z! V! f# c5 L" c6 g - drawpattern ltabstr reset-lt' c8 l! T* o9 o; ~2 \
- )% K: T9 O0 ^4 S& I
- 0 t6 J/ W5 l3 x1 h" g9 ^2 q
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho* T D8 O( f6 d! w
- old_error *error* ; save current error function9 ~4 T5 O0 Y& h* a; v
- *error* ai_error ; new error function
) D6 b" D* @3 X8 M5 V - )! h0 Z" r, H! t; u8 k4 A" O# z
- % j0 d% J+ z+ S. e0 Q) U
- (setvar "cmdecho" 0)
" Z+ W% q6 r$ V. \: E8 a0 {4 U - ' B. n1 Z$ u$ O, M6 O/ O( D
- (cond% ^, G- ?6 V! A W. w# M/ @$ i
- ( (not (ai_notrans))) ; Not transparent?
+ E( q' q$ B; h5 r - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
8 f4 J8 D9 x8 _8 E1 s' \ - ( (not (setq dcl_id (ai_dcl "ddchprop")))) ; is .DCL file loaded?
. y, T/ |3 ^% `! j) @( b2 R9 } - ( (not (setq ss (ddchprop_select)))) ; objects to modify?1 O0 @$ z1 m' _$ W- t
- 1 [4 {# F- T9 h( _* p- @
- (t (ai_undo_push)" x; j- K3 K2 c( w* j5 S
- (ddchprop_init) ; Everything's cool,/ J! P h- F$ C- }1 t" e- P
- (call_chp) ; so proceed!
5 q4 U% a9 Z; L) P - (ai_undo_pop)
# _5 L: u. L8 Q - )* D+ A: j1 r! f+ w* J; ^# {+ x! |7 P
- )/ C; P& {$ A9 ]( C
-
6 h; K7 h3 k# a' l* v - (setq *error* old_error) 6 @' n7 p7 d9 g1 l5 z% B s
- (setvar "cmdecho" old_cmd)# V2 h! O8 L+ M# z+ y" B
- (princ)2 F, V& C4 F, Z) X- T
- )
: w6 I' d% a% Y1 t( V, J
0 k7 u& r" _+ l- R2 Z% p- ;;;----------------------------------------------------------------------------
o8 _/ m5 d% h& W: M
9 T, Z' T" H/ o- (princ " DDCHPROP loaded.")! {; n5 p! L: N$ K) _7 L2 C
- (princ)/ i5 N" Q2 R' j
" C& n) ?: J3 X j* Z# \9 D- ;;;----------------------------------------------------------------------------
4 u; J/ Q9 A6 j - ' e6 K8 s& Z- v |
- ;--------------------------------ddmodify.lsp----------------------------------, l3 f R/ `0 N2 O5 |" A, |
- ; Next available MSG number is 111
, _* @) |2 e/ H9 C6 A - ; MODULE_ID DDMODIFY_LSP_: f- `8 S- y) i
- ;;;----------------------------------------------------------------------------& o+ s" Z0 N' G; B: s# F
- ;;; DDMODIFY.LSP: |+ Q' y7 f l0 M* T- b' A; T
- ;;;
* D5 O p6 O$ F# i3 Z - ;;; Copyright 1997 by Autodesk, Inc.0 O* {% A1 i0 {' T9 _/ I* |/ Z: M
- ;;;" x/ K& H* N7 N9 _2 l: [' n
- ;;; Permission to use, copy, modify, and distribute this software! T# i; R0 t, X0 |. v- _
- ;;; for any purpose and without fee is hereby granted, provided
; j2 V: |7 h. E* J - ;;; that the above copyright notice appears in all copies and" M: l8 d9 c" S k: e j( @
- ;;; that both that copyright notice and the limited warranty and9 N- l5 e+ I; @% L( h
- ;;; restricted rights notice below appear in all supporting
, \% l# _6 A6 z$ Z- S - ;;; documentation.
& d* E- t% ?/ D1 p& \" r+ X5 ^! P - ;;;
& Y) Z; O/ C1 C2 H: i1 j! w - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
4 M: J1 R Z! C5 B: ^1 ` - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF, ~2 ~: J# v! z6 K' \: O% `
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
7 U- L6 d, U3 Q' I# O - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
+ R E6 g9 T2 t( F& w7 m2 _: I - ;;; UNINTERRUPTED OR ERROR FREE.
9 @1 X+ \6 r A8 G - ;;;; T r* |8 @7 i( x' e2 f
- ;;; Use, duplication, or disclosure by the U.S. Government is subject to
6 o k. L# l5 U2 a - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
: |# f) G, g. q4 N' O# E8 N. O5 A - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)1 l/ j* C3 b! m" p8 M
- ;;; (Rights in Technical Data and Computer Software), as applicable.
# S( _, X) A, a - ;;;
8 R: g! N- W% s" q7 @- W - ;;;.
: L! J5 u: e0 w5 | - ;;;
$ S5 u$ R) q& z1 E - ;;;----------------------------------------------------------------------------
! @$ \. m0 X$ G( m' r* H3 n - ;;; DESCRIPTION
& U2 F. p2 [' B* d# O+ _5 | - ;;;
( V3 Q: R% X; W( z4 s+ @ M - ;;; This function allows the user to get a listing comparable to the LIST
( s. H2 p5 L: ]( q* `0 H* p7 v' o - ;;; command for most objects. In addition, most object fields in the h' G9 E' q: ?! R
- ;;; dialogue box are editable. Points can be specified dynamically by
3 X8 z; x" G5 A) k v; r - ;;; temporarily dismissing the dialogue box. Each object has a unique
5 o7 s+ v0 A# C; J+ g6 j - ;;; dialogue.
1 T4 x1 p5 c1 |- e - ;;;
4 [, k$ M4 D$ m# s6 [' m - ;;; Naming conventions( o- ^ d: T( y5 g8 k' u% c7 x
- ;;; Long function and widget names may use an underscore "_"+ z! ?. p! p! A; z9 Z7 s' ]& Q
- ;;; in their names to make them easier to read, long variable
8 {7 T( W8 P2 u1 G6 V! O - ;;; names use a dash "-".
' R+ h" D4 p% Q: v% k. k - ;;;----------------------------------------------------------------------------/ c, ~5 c9 ~! q2 u
- ;;;----------------------------------------------------------------------------
- ?: Q$ I$ I4 y' I% Q - ;;; Prefixes in command and keyword strings:7 Z& @ p) y& u. K& x: v+ m
- ;;; "." specifies the built-in AutoCAD command in case it has been9 x0 Y) S: `% V' |. Q' O3 `* {
- ;;; redefined.
3 j A; n9 U/ I' Y. k- O4 F - ;;; "_" denotes an AutoCAD command or keyword in the native language/ A; _4 s$ ~7 S2 u8 q) s: h
- ;;; version, English.
5 `9 F$ G3 o5 y1 i: h" k - ;;;----------------------------------------------------------------------------
# ` q& h. \3 y, \- J! C - ;;;
; H( {; w' G5 I# N/ j. y9 o - ;;; Avoid (gc)s on load to improve load time.
. Z2 ?0 `- N9 C0 G$ i - ;;;
. ]+ j+ X5 Z4 B - (defun do_alloc (/ old_allod new_alloc)/ m3 F( z4 x7 s* G
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))$ G" B* o: Q$ z$ ~2 y0 m
- (expand (1+ (/ 17000 new_alloc)))
# Z( D% A7 E$ J* f4 k: r - (alloc old_alloc)
" Z% Z# m0 _* J2 ] - )
& S& X8 B! m6 [; p# }& A: o" L - (do_alloc)
2 O3 R: y8 ]4 E* Y& f) K - (setq do_alloc nil)
/ S2 R2 }5 [/ b - 4 {, S5 w1 Y ^2 X' B! W9 x/ V
- ;;;# B4 M4 E q" y% T) g/ i( P# t
- ;;;
7 S0 I/ D: F0 X% ]' Y% q - ;;; ===========================================================================
1 g. U7 Q1 K: V9 u+ a - ;;; ===================== load-time error checking ============================# U1 C4 V& ]% O: {
* l% H! C: f! {0 z3 D' n! L( u- (defun ai_abort (app msg)4 n+ K N5 P) a9 O0 ~+ k% d
- (defun *error* (s)3 k8 [7 V: ^: v) _( o2 B, s4 V
- (if old_error (setq *error* old_error))
. X" C5 s, m5 Q" f% k! [. b9 ^ - (princ)
# y0 h m. R- \- @1 h; t. W7 y - )- J/ r; C+ ] M& C
- (if msg
- j5 N( P3 o# B3 z4 Q3 } - (alert (strcat " Application error: "7 ^1 [# e: u9 W& `
- app
: C$ e$ e! y2 B5 c3 }$ M - " \n\n "
( I0 ]' i2 s; |5 T, B' |( V1 x' X - msg
* A8 A% _; l3 m - " \n"" X2 @4 |; b4 h7 \, l3 B8 d
- )! X1 I v h j* a& E2 y3 r
- )
* k/ D8 _' D3 e - )
, ?! l& X' n# A. f; y4 O$ Q& s) d4 J" S4 R - (exit)
9 L; E7 Q& d: L: w/ u P - )7 o( g& K- z9 }
* F, K, \7 y" p8 _# Q" p- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,0 D- i/ I+ M1 k0 c; t3 D- j9 X$ P
- ;;; and then try to load it. If it can't be found or can't be
" @& J& S2 T- n, W5 y2 Y7 ~. f - ;;; loaded, then abort the loading of this file immediately., \0 \8 ~' ]% x x5 t
; W' ?/ l! g, R& o- (cond# R, L# c- | a
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
c' f. S# q/ A, q. D - 5 N* x2 [) y" k( ~7 S
- ( (not (findfile "ai_utils.lsp")) ; find it
+ }/ E+ d% C- ? - (ai_abort "DDMODIFY"% W6 M, m3 F4 B* G! Y
- (strcat "Can't locate file AI_UTILS.LSP."
# t* u% V& Z, a - "\n Check support directory.")))
0 R) Y, e) _1 e) D# L
, U n R( r4 u- ( (eq "failed" (load "ai_utils" "failed")) ; load it, `( `$ B: J( ?" n k1 q5 l% Y. @9 x
- (ai_abort "DDMODIFY" "Can't load file AI_UTILS.LSP"))8 n: K: f& D9 z) B
- )0 N, z, `2 B( a, s5 m! ^/ L0 m
' O8 q8 E1 x5 v* ^5 r1 }+ q- ;;; If we get this far, then AI_UTILS.LSP is loaded and it can: q' M9 W1 O9 K- ~" T
- ;;; be assumed that all functions defined therein are available.
: ]7 K' z4 O/ @8 ]# C4 F' ~' f
+ X2 P* V: z- y/ m) F0 g2 C- ;;; Next, check to see if ACADAPP.EXP has been xloaded, and abort
% t- H8 q: ?# P# U6 H' ~ - ;;; if the file can't be found or xloaded. Note that AI_ACADAPP
4 f$ h! b% X4 L" h2 {. y- o - ;;; does not abort the running application itself (so that it can/ x2 v9 J4 F. E
- ;;; also be called from within the command without also stopping
+ f( s7 f+ s, H( ~3 b7 \ - ;;; an AutoCAD command currently in progress)." I, M3 |) N$ g
- - K/ w' T) c* M% m7 ^8 s5 Q
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP: B# _/ ]/ u( U; i* E1 }
- (ai_abort "DDMODIFY" nil) ; a Nil <msg> supresses
' I% L, I! r, {# f* k7 T/ x4 T - ) ; ai_abort's alert box dialog.' p2 T r0 b1 ?. o% h
- + s- X" H; O: ]7 q2 `$ p2 v- a
- ;;; ==================== end load-time operations ===========================
7 q9 `! X, t) B% c* @ t* l - 1 l. |$ T5 ?9 k8 w2 V4 D. D6 i
- ;;; global variables
. E' d$ n1 p% C& \# V
5 O7 Q/ G6 I" L- (setq hatch-elist nil); h/ k6 n2 ~/ n
- / N, e4 J, b. R" T b& f
- ;;; If we get this far, both ai_utils.lsp and acadapp.exp are7 R r' _* p; k0 W8 G, k' M
- ;;; assumed to be available.
+ W8 P0 {# U& F3 v' |% h4 q - 5 q/ l1 ?; `' x: W+ P
- ;;; Define and encapsulate all subroutines that are declared8 J7 @- s5 J4 e/ e3 V
- ;;; locals of the (ddmodify) function.
4 k- Y2 C4 d; I; ^) ^# q$ C; y k& ~ - * `; d7 ]- y8 s+ G+ B5 ?' `0 d
- (defun ddmodify_init ()
! ]' Z6 D7 n' a0 R4 W - ;;
" c- ?1 A$ ^' u3 l5 c - ;; These three functions modify the enitity list for common properties. Since6 h2 r) l( n# S N: e
- ;; color, ltype, and thickness are absent from the object list when they are
! X# S" }8 q5 U - ;; set to their defaults (i.e. color = bylayer), a simple substitution using9 |. l4 f" t9 A5 \. A! ]$ o2 w' z
- ;; SUBST is not possible.1 b+ o g0 h5 ~# U- k. _
- ;;
4 g/ Y# O$ K1 w1 k - (defun modify_properties ()
R% o, `. n5 {$ I `$ N& n - (emod ecolor 62)2 f& r, F4 D+ }1 C) `6 Z7 X
- (emod eltype 6)
! g- n: r# E4 V5 Y, _7 h) B. o0 D0 ` - (emod ethickness 39)2 d v8 ]/ n0 }6 e# f2 b
- (emod eltscale 48)5 p7 ^$ W+ N) I( q
- (tempmod elayer 8 nil)+ m' j" y: P% A. I9 d+ d8 y( ^! ?
- ) f: q7 e5 J1 i- |" J, g7 J9 O
- ;;2 y# a% |( r% |5 D0 i l0 `
- ;; This function is used for modifying common properties of the ACIS p' l$ e7 M1 c4 W/ ]/ u
- ;; based geometry objects. Thickness is not valid for these objects" s: L$ t7 p/ S% ]+ _
- ;; so it is left out.
# d$ v( F: P( H+ f$ e0 n5 k7 _) U7 P% t - ;;) Y+ {7 m0 o) L+ J9 x- R
- (defun modify_prop_geom ()9 _9 M1 ]$ v* @( Z2 ?' ]$ ?7 f
- (emod ecolor 62)
1 _- O1 R8 a) v% L8 ~ - (emod eltype 6)- y; x; B$ v, I. H) `2 P
- (emod eltscale 48)
. C! y% m! ?+ l. h1 B/ C/ g1 L - (tempmod elayer 8 nil)- A! `* h+ `# _5 P; b
- )
8 W9 _' j( o) g3 n3 \ - ) k5 ], t8 P s- Y4 s
- (defun emod (value bit)
. s% \ |8 j; c, F - (if (= bit 62)
- t) o4 g0 ]% X8 i! R - (progn4 C- z D( f3 Y* _
- (if (or (= value "BYLAYER")
! B! n' I; X- o# D* ~- C' G - (= value "BYLAYER")) (setq value 256))4 ?4 _' D8 I2 V/ j
- (if (or (= value "BYBLOCK"): K( D C8 l' R5 V
- (= value "BYBLOCK")) (setq value 0))7 Y, \& s' ?/ k( X r
- )
( @; k8 W2 o% Z3 I) g+ b4 d - )9 y/ [4 y# @3 [1 S; V, p# e% y
- (if (setq oldlist (cdr (assoc bit elist)))' t, C+ f7 Z U7 ~' J4 }& ~) o5 N9 m
- (tempmod value bit nil)
) B; K' U1 `1 Y( Z& T6 ^ - (setq elist (append elist (list (cons bit value))))
P$ P* P- n; I; v9 v/ }: o9 U6 [ - )
+ J# h; A( _9 _! M - )
5 A) A. F4 J ] - ;;5 M5 V8 ^3 x- U, u* K. u9 D1 \
- ;; Resets object list to original values. Called when the dialogue or* ^: a& X! O8 y7 K5 |5 g1 E& o; [6 m
- ;; function is cancelled.2 m! e& R6 ^4 ]: P. x2 S
- ;;4 g/ c/ u9 F( ]1 U& n
- (defun reset ()
* h% t, X0 t$ c( D0 V# C \5 v - (setq elist old-elist1 j# g/ q3 a+ c, b
- ecolor (cdr (assoc 62 old-elist))
6 L- q# M! l/ Y/ q# p0 y - ethickness (cdr (assoc 39 old-elist))6 ?4 I9 g, }& C
- eltype (cdr (assoc 6 old-elist))- F2 }9 u- F4 ~* y( c1 D
- elayer (cdr (assoc 8 old-elist))
: O# K- t% B' w - eltscale (cdr (assoc 48 old-elist))
& o$ U$ {" W* m! [ - )
) O3 w0 ^: I8 [ T - (if (not ecolor) (setq ecolor "BYLAYER")): D9 d f. G5 ?4 H2 a4 e) f6 M3 |
- (if (not eltype) (setq eltype "BYLAYER")); F& s2 Q7 \8 M" |8 r R
- (if (not ethickness) (setq ethickness 0))( F2 D/ x/ K4 D% y9 N1 Z; j, O" i, o* m
- (if (not eltscale) (setq eltscale 1))
+ ?! Y. p) {- v+ [ - (modify_properties)
# x/ n+ f1 J) U6 y K1 a* [3 L - (setq reset_flag t)
! l3 f7 K, G4 r: c' P - (entmod elist); K5 ~! p# `+ n6 x
- )
4 Z! r3 u: | ? - ;;
0 @8 \, ]- H, v - ;; Modify object when dialogue is temporarily dismissed to reflect latest$ G& {9 |* H2 n" S' `9 u4 |( s
- ;; settings of dialogue. It converts the point from current UCS coordinates to
2 W$ q' ]/ p2 z - ;; the proper object coordinates (world or object).
7 p: |) R9 n7 @7 m: P: w - ;;
9 n3 u D& B4 k. r! @5 a/ k' c - ;; Arguments: value - in current UCS coordinates
* ~. q) a6 R0 N a - ;; bit - object code (i.e. 10 for start point)' ~3 @ q+ ?: x/ [
- ;; ptype - point type 0=world 1=planar
* b* D3 I S% f/ q - ;;
0 e( F* O/ R2 S+ U, h% d+ w" o7 M" W$ Y - (defun tempmod (value bit ptype / newpoint)
2 i ?+ s4 g+ j9 c3 @: G - (cond
2 L/ ^7 ]) u* a" t g7 v9 r% a, u! i - ((= ptype 1) (setq value (trans value 1 ename)))
4 \8 c3 v3 i& I - ((= ptype 0) (setq value (trans value 1 0)))! U8 y6 \& i& }& v/ u; R
- )
* @ k; }% o5 h |- x6 p - (setq elist (subst (cons bit value)0 l4 X( b) N+ C
- (assoc bit elist)
4 O& W7 H! b- d/ P" `/ H- @5 D - elist% H! h: \+ x5 ^6 M
- ). D6 ]' P3 Z( v- A! U2 X) N) o7 S4 R/ B/ b
- )
" |* w4 J( q1 [6 v# K% W: g8 }7 v - ), t5 ?1 K) u! @
- ;;; T' ^* o5 c7 w
- ;; The following functions are called after a dialogue has been temporarily
; N* L2 ^/ ^# @' ~* x" Y - ;; dismissed and the user is selecting a point. If a point is selected the
. j1 a- l' O- A1 F3 s# \ - ;; object list is modified and new X,Y,Z values set. If no point is selected# L. V5 P _, K$ f( a9 n
- ;; (null response), then the point is reset back to its previous values.7 E' |" \# W, A" v* d
- ;;
- O# E& ]4 \! v - (defun ver_pt1 (ptype)
v* O" m# } M' r8 B - (if pt1% K! ]5 l- o% m L$ j) g m8 W9 Y! g6 v
- (progn0 W) ?8 l+ z8 i" F
- (tempmod pt1 10 ptype)
9 I4 r0 ^% d. G! @4 Q) `" M2 J - (entmod elist)
+ F+ `7 u" B5 v" {5 C) u) N. c9 O - )
( k; t W5 U' ~) ~ - (setq pt1 (list x1 y1 z1))
6 L. R; \ B: Y3 D - )9 l' W) @8 D4 r1 N3 u+ a
- )3 @. h# @8 v0 d0 q
- 0 S' T$ F a+ U8 @) @7 [& {5 C
- ; (move_pt1 <ptype> )4 D5 x ]* Q) S: ^0 ]1 A( a
- ;
{0 G* x& F0 U% f - ; Called in liew of (ver_pt1) to translate block insertions which7 [2 `3 Q3 D+ O8 b( r
- ; might have variable attributes attached to them. If the distance
3 L7 q5 f' l9 `4 X - ; the block is to be moved is < 1e-6, the move is deferred.
5 R' K R: W1 `: i! G - 6 b- J6 v1 _6 C$ X
- (defun move_pt1 (ptype / basept hi)6 ~5 f& U, w* [9 H3 g6 l
- (setq basept (trans (cdr (assoc 10 (entget ename))) ename 1))) t- O) @0 h1 D1 d: M+ V7 C
- (cond
7 T8 c1 l D% H1 J - ( (not pt1)
4 E; y" [ g. r) e$ P: L - (setq pt1 (list x1 y1 z1)))6 U/ P4 n$ k8 G( J( B
$ Z* N8 j. o# ~. K8 Z% `; y% W- ( (> 1e-6 (distance pt1 basept))): e7 r* ~- Q2 V$ k$ Y. R- k3 n
" R* [7 e- g3 a4 m; X$ _+ U2 l- (t (tempmod pt1 10 ptype)
" O, t4 w6 x4 J: J( h4 _9 b7 w - (setq hi (getvar "highlight")). r- B0 Y# c& z- U/ w6 @+ a4 T z Q
- (setvar "highlight" 0)
) Y( i5 J) m1 M% R3 W ~6 a - (command "._move" ename "" basept pt1)
; G3 T$ g O1 K3 d9 h - (setvar "highlight" hi))
$ J/ H$ `' R, f2 T: N) @ - )3 s* u, _, O. R1 r3 O
- )- v3 E6 y2 s- j3 K. S% E7 h6 T
0 t3 n e3 m1 m+ t2 d; f- (defun ver_pt2 (ptype)
3 ?# S5 \7 l L9 a - (if pt21 b# ~( L5 @ B5 O, \+ J% P
- (progn
3 x; I( c/ H) E5 A( ^0 | - (tempmod pt2 11 ptype)
7 h) N# W/ m* {$ @+ E - (entmod elist)
+ B& e0 F; R$ C/ M# T - )
4 ?) b/ W7 h$ V- T' U! [- ] - (setq pt2 (list x2 y2 z2))* b" z2 e8 [' \" x! l+ w% }
- )( x4 L0 q. R; Y
- )
3 f& N0 S0 \% Z. j8 J# H9 i: R. X - 9 {6 \5 e9 h! D6 @0 k) J
- (defun ver_pt3 (ptype)
5 } t G. w% F9 j8 t - (if pt3' ^: m) E/ C* i( j' m
- (progn% {# J% a6 C! {/ `
- (tempmod pt3 12 ptype)
8 B/ r- k2 A0 x4 i( t9 i - (entmod elist)- I/ M* b* Z4 V; a0 W& Y3 M
- )
0 l3 a8 X0 ]0 Q9 `. M6 ]$ q# O - (setq pt3 (list x3 y3 z3))$ Z, _/ B4 W0 u3 H( v' O5 Y
- )' u, o+ C6 l. z2 \6 X6 c$ B
- )" \1 Z5 C5 t& s% M# c2 S' ^
- 8 N9 m% g1 ]# L ^1 R; |/ V
- (defun ver_pt4 (ptype)
4 K+ g2 h! ]/ s% `' r& z - (if pt4) F) V2 H! c% l
- (progn
% l* `* B' ^/ o7 ^7 V3 l3 ` - (tempmod pt4 13 ptype)6 l# t5 H8 S S3 h3 k
- (entmod elist)9 A& B1 E/ d) W
- )$ u. l. J9 I( m1 k% \
- (setq pt4 (list x4 y4 z4))4 A8 j9 J4 |7 k! b4 t' a+ h! s
- )1 O! Z, k5 E6 l5 d
- )
6 s; P8 ^7 d( Y: r2 @ - ;; Xline/Ray& ^ n( z4 h9 o
- (defun ver_xline_pt1()
9 P ^" K" ~8 U) r) j, a - (if xline_pt1
' Q8 W" B$ q& M# [5 c - (progn% \8 o: H/ `. P, H h) f
- ;; convert to WCS." K# Z9 l7 N6 W/ Y& `. M
- (setq value (trans xline_pt1 1 0))0 K9 N5 Y- U7 p! F+ N
- (setq elist (subst (cons 10 value)2 M z7 M% Q1 S
- (assoc 10 elist)
. J% u; r/ v+ P' d - elist
8 R ^2 f# s; V# U - )
/ N" j2 v! P2 F' {3 K - )( \0 s' Z/ y; P/ K$ j* T) f
- )1 j4 ]% r4 T8 O" T$ S" H
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))
2 s0 X- u& _+ _0 `; V9 ^ M - )
5 `7 A) R4 L4 w2 E, x - )0 K4 O8 K1 k% s
- " v/ W% q8 a" h3 \5 {, V
- (defun ver_xline_pt2()+ a: |& B4 M$ F# ~' g
- (if xline_pt2& A p+ W7 r$ `" ?& I7 r
- (progn
3 Q" K! Q2 Z& F - ;;
* }9 z/ M# P2 k( K - ;; Calculate new Direction Vector WCS4 m7 o6 y8 K# n) c
- ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
6 N, x2 X* W- R. P - (setq temp_dir (trans xline_pt2 1 0))
) J( |2 u. J0 d - (setq temp_dir_x (car temp_dir))% D$ q) ^4 Y' e: e' @* z/ k' E
- (setq temp_dir_y (cadr temp_dir)). w0 ], J4 m, L' R2 F
- (setq temp_dir_z (caddr temp_dir))
k! z# i. o: @& p0 \ - K/ g X0 K" e& i& A
- (setq temp_xline_pt1 (trans xline_pt1 1 0)): q) u7 T0 \5 @0 Y, C
- (setq temp_xline_x1 (car temp_xline_pt1)); g; `% _( c; P! P. M: T0 w8 L
- (setq temp_xline_y1 (cadr temp_xline_pt1))6 u) {' b6 ]' {3 T3 Q" ?
- (setq temp_xline_z1 (caddr temp_xline_pt1))* Y# ~" C `8 W8 d0 l+ q: u& v) q, C
, |; {6 S. @" }2 ~- Y9 S. U- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)
3 o" l3 J( y1 {( Y/ L - (expt (- temp_dir_y temp_xline_y1) 2). s; v6 o, B! B1 {7 E6 Z# o! W+ F; `
- (expt (- temp_dir_z temp_xline_z1) 2)( Q4 O5 I; _* {8 L# m5 M
- )))3 C1 T6 U& r: @5 _
- (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
: m* J6 P# w; q3 ]& j8 o - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))( A; z3 \$ }9 J3 s) D* ], m6 j9 p) p
- (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))( L% e! L; a, I! [% Q" }" g2 N& m
- (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))1 S7 x6 F; F1 L, K3 C* n
- (assoc 11 elist)' F7 B5 B, ~% f4 X( k! R, o
- elist7 @% c( j1 z' E7 c- J# v. I
- )
6 D) ~& n+ Y, ~# R7 L( ? - )
' K3 u) b) _+ t5 n/ E - (entmod elist)
/ Y" P% M$ x& m- ]4 w - (setq xline_x2 (car xline_pt2))
* O0 | c4 |8 W5 q1 \ - (setq xline_y2 (cadr xline_pt2))
9 X1 Z8 `! P* Q) T# b. }5 v2 ]$ A - (setq xline_z2 (caddr xline_pt2))
/ Z8 j2 X) t; H$ a
5 J( b9 Q3 r5 R- [4 ]2 p3 {# B7 X& [( l3 e
- )
/ p$ u0 ~( b# I5 ^ - (setq xline_pt2 (list xline_x2 xline_y2 xline_z2))
4 \0 H0 G2 g8 c* n/ p5 [ - )8 j, H% w) D' a) G1 c) k% [
- )
! ^* Q0 S; [: @0 B1 H1 a4 e3 w& i
# D5 \3 p! Q' N6 v8 n; a3 C- ;;! g9 ^) h! k. v$ S" P, M
- ;; Common properties for all objects; g3 Q9 w2 S M; s5 t# s
- ;;$ B7 q: C9 d0 N8 ~' z( ^- T
- (defun set_tile_props ()
1 J! K' L. m$ I% E w - (set_tile "error" "")
( g" B6 @$ \# f7 y5 v' w4 s - (setcolor)
5 S3 e+ N: y, B1 A3 l - (cond
) b& g" w7 u* ~ j8 f" d - ((= eltype "BYLAYER")- L3 x: B$ E# c
- (set_tile "t_ltype" (bylayer_lt)))% e- U5 M4 X( @: H
- ((= eltype "BYBLOCK")" w s" L5 m L N/ i1 ?
- (set_tile "t_ltype" "BYBLOCK")): D( `$ O2 D! }, A- q
- (T (set_tile "t_ltype" eltype))4 A& f5 \8 h- j
- )8 D: v( b$ y+ z
- (set_tile "t_layer" elayer)/ E1 e7 ^7 Q* X: d2 S) G( S* H
- (set_tile "eb_thickness" (ai_rtos ethickness)); M/ [, L9 S8 @9 O8 c! J- Y$ x1 g
- (set_tile "eb_ltscale" (ai_rtos eltscale))
+ H/ Y+ W5 o# ]2 ~ - (setq which_tiles (ai_common_state etype))
$ W( @! H4 R2 c" C; z7 d3 E - ;; Disable tiles if need be...
& V; [" l% a( r d% K {. e - , W8 V4 X- B) @3 P. t" `8 [3 N) \
- ;; Layer Button and Text Field
9 n) P9 f/ R1 K4 Z4 j9 e - (if (/= 1 (logand 1 which_tiles))7 b9 C3 p! p$ q2 d, O- P0 C
- (progn
% |, Q. e/ K- ^: l8 N - (mode_tile "t_layer" 1)+ v* Z* Y: m4 d
- (mode_tile "b_name" 1)
6 l+ S: G) r! U q - )
+ a" j6 t, f8 ]' `" |. H - )
) \. j' w9 ~, _$ e0 u" s0 c - ;; Color Button and Text Field
* W* {1 B+ b% l$ W( \, `# P1 P2 X - (if (/= 2 (logand 2 which_tiles))
, Y) M/ ^/ E d. ?: u9 a. _8 v - (progn0 C- S+ B. e' s0 K, j% I1 L! q) o
- (mode_tile "t_color" 1)
8 Q5 b( ? @6 O; W& D1 Z' `5 E! | - (mode_tile "b_color" 1)/ k5 ?3 Y, G- A/ K+ Z/ d4 R
- (mode_tile "show_image" 1)( d# h& X8 @4 W! \
- )5 _; @9 Q% L: X( f: p8 M
- )
1 q' f9 \! O" V5 x0 C- z* D( \; P - ;; Linetype Button and Text Field. F- o! V, V. G1 {
- (if (/= 4 (logand 4 which_tiles))0 ^6 A( [5 c5 \3 e* E
- (progn
1 Q. L7 d- k3 [2 K4 V& V - (mode_tile "t_ltype" 1)
. M) b: b4 D$ u& ?6 R2 V - (mode_tile "b_line" 1)
& B' s0 T0 @, T1 ^- U - )
: k; u! S- v9 u2 O$ ` - )
- e6 V) ?7 I. k- X - ;; Linetype Scale Edit Field
: ?) J0 v2 Z4 `) ~ - (if (/= 8 (logand 8 which_tiles))
1 c: U+ Y) U# p - (progn q. P7 B9 z6 h; G$ R+ H$ z: N
- (mode_tile "eb_ltscale" 1)4 _8 m4 k$ { V
- )* l0 Z8 r/ e, K& t% p) R5 q
- )+ i4 O; H0 X) c6 C& V
- ;; Thickness Edit Field.& ^3 q8 L" u: Y: ]. W1 [
- (if (/= 16 (logand 16 which_tiles))3 `7 y+ m D# g' e1 L
- (progn
6 ~5 }! r0 Y% c8 V* R* e, C7 | - (mode_tile "eb_thickness" 1)
" K$ z( E' r: y9 q6 n% O! O - )
' ^- r4 I7 b7 A& ]8 p - )3 ?1 u( c% [3 `* P e" i
- )
$ s+ A: r5 a$ s8 s: W% z - ;;. ~" g ]; N$ A0 y ] x
- ;; XYZ Point values for all enitites* K" W4 H2 s- U0 `( L; u8 K
- ;;
" W8 Q! p$ V1 V' w - (defun set_tile_pt1 (ptype)7 L( X6 H0 ^; o& n9 e' ]" W- S* x
- (if (= ptype 0)3 h, `: }7 `; N% u2 f
- (setq pt1 (trans (cdr (assoc 10 elist)) 0 1))
5 U8 O( w1 J1 t( z& W - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))* l0 A+ ]( s6 a9 Q# g, P. e
- )
% w" r9 W8 O1 |9 t* x - (set_tile "x1_pt" (ai_rtos (setq x1 (car pt1))))4 u6 b5 h4 k1 h% B' r% z4 h. C
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr pt1))))9 D; t0 m1 Z: ]5 d4 o# k
- (set_tile "z1_pt" (ai_rtos (setq z1 (caddr pt1))))
) t/ C& w, q) f; L [( z- @( p - )+ I' B4 } l/ b- p$ H; M% B
- (defun set_tile_pt2 (ptype)) ]- C: ]9 {: Z1 G- @* e+ j
- (if (= ptype 0)
$ T/ G. h. Y" o1 ` - (setq pt2 (trans (cdr (assoc 11 elist)) 0 1))
+ ]5 ]7 U+ [' Q B - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))
( z% n, L) X% i - )" [5 t4 C0 i4 G, }, c2 f: Z
- (set_tile "x2_pt" (ai_rtos (setq x2 (car pt2))))
! m& l7 g1 z- q7 G; ~' c - (set_tile "y2_pt" (ai_rtos (setq y2 (cadr pt2))))0 A: C& ?7 E: A9 Q2 }
- (set_tile "z2_pt" (ai_rtos (setq z2 (caddr pt2))))
5 A i* d. a$ j - )2 \2 w s( b4 u& n. s1 K5 X
- (defun set_tile_pt3 (ptype); F9 @( y" K/ V/ ~5 A
- (if (= ptype 0); E7 J% P8 b' |5 L e
- (setq pt3 (trans (cdr (assoc 12 elist)) 0 1))0 C- u: l- f# g
- (setq pt3 (trans (cdr (assoc 12 elist)) ename 1))3 S- r; o% u9 R' G% @
- )
* h1 v1 \( A3 s% u. ^. ?# v - (set_tile "x3_pt" (ai_rtos (setq x3 (car pt3))))' X3 m% q4 g; j5 m% T
- (set_tile "y3_pt" (ai_rtos (setq y3 (cadr pt3))))
; ], T5 D8 a+ ]8 u/ D7 q; w - (set_tile "z3_pt" (ai_rtos (setq z3 (caddr pt3))))- y& r* S0 k" A) e9 ^8 ?
- )+ E- Y5 k6 N! h
- (defun set_tile_pt4 (ptype)
- @1 W! p0 d R% y8 \% i3 c# B - (if (= ptype 0)
9 p& r+ G4 Y) n3 P - (setq pt4 (trans (cdr (assoc 13 elist)) 0 1))
& @2 _% h- c! U1 w - (setq pt4 (trans (cdr (assoc 13 elist)) ename 1))( f- {" e0 x' a7 R+ z) R5 w; F9 q6 L6 B
- )
1 h6 a# q8 O* Z; G2 c - (set_tile "x4_pt" (ai_rtos (setq x4 (car pt4))))1 w0 W/ T1 a2 a7 ]6 `
- (set_tile "y4_pt" (ai_rtos (setq y4 (cadr pt4))))
- x2 p& k4 N4 c2 ], Q3 }$ Y - (set_tile "z4_pt" (ai_rtos (setq z4 (caddr pt4))))
* f$ ^ s4 G4 ]6 v6 l" G# L" J; u- q - )
; \% p2 \* ^- v7 d5 ^0 x, ` - ;;/ X; M8 H/ r7 [6 N3 i, M
- ;; Xline/Ray1 ]+ V) Q) V; n" ]+ c, @
- ;; P, n4 e- A$ b$ x# K6 w" i9 z' p
- (defun set_tile_xline_pt1 ()
% h, y2 x k& m# ?" f - & D4 m9 O( m% ?7 R+ ?
- (setq xline_pt1 (trans (cdr (assoc 10 elist)) 0 1)). ~" o0 L( Y/ y9 i
- 2 W, O# z' \8 i! I8 x3 b
- (set_tile "xline_x1" (ai_rtos (setq xline_x1 (car xline_pt1))))2 p/ C4 Y! p- c8 o( \# T
- (set_tile "xline_y1" (ai_rtos (setq xline_y1 (cadr xline_pt1))))! O6 V- |+ H( o! r$ T8 w* ^7 _
- (set_tile "xline_z1" (ai_rtos (setq xline_z1 (caddr xline_pt1))))
0 e9 H# J5 V3 ^1 @* p+ S - )
; ?) L: |+ ^) Q - (defun set_tile_dirv ()
, V1 ~: V6 q2 E+ G, B - ;; Convert 11 group to local UCS (displacement)
1 N0 A+ j/ u: X# r - (setq dir_pt (trans (cdr (assoc 11 elist)) 0 1 1))
* X! U7 S, G2 Z, |! j# v, G n
2 f9 W6 [) J; }5 p! m, i8 _" k3 _- (set_tile "dir_x" (rtos (setq dir_ptx (car dir_pt))))
9 b+ Z5 j2 v% y3 }$ ~ - (set_tile "dir_y" (rtos (setq dir_pty (cadr dir_pt))))) g3 \) k. \: ?) e$ `
- (set_tile "dir_z" (rtos (setq dir_ptz (caddr dir_pt))))
! t2 o r. [! p( l) [% G. w# D* h; I, M - )
4 ~1 ?' C% K. [* p - (defun set_tile_xline_pt2 ()' f+ Q; [5 z2 E. |# [: p, {. A
- (if (not xline_pt2)$ |, d0 `2 { U+ U9 \$ u( F
- ;; Initial second point is Root Point + Direction Vector
! x( ~7 T" b A+ J. ]+ M" P - (setq xline_pt2 (mapcar '+ xline_pt1 dir_pt))& A5 `: H' v$ k+ T, Y. R
- )
2 C8 E( f4 e/ h2 D7 t - (set_tile "xline_x2" (ai_rtos (setq xline_x2 (car xline_pt2))))
5 |+ }8 ^6 h7 p9 X+ b0 T - (set_tile "xline_y2" (ai_rtos (setq xline_y2 (cadr xline_pt2))))
# \+ \* Y6 O! m+ g" M8 I - (set_tile "xline_z2" (ai_rtos (setq xline_z2 (caddr xline_pt2))))
/ \: B! p+ [. s - )
8 v! r# y" U3 C* d& U2 p1 N - 8 ~' e( E) K, l7 A. o6 l
- ;;
4 c- X% Y1 H, i - ;; Handle for all objects
: B8 U5 ~- V0 J. U( i$ f6 F - ;;# P, E4 Q2 u4 f! c8 D$ t
- (defun set_tile_handle ()
+ u: a' z& W5 K - (if (setq hand (cdr (assoc 5 elist))), m+ Z. o6 D; S y2 k
- (set_tile "Handle" hand)- s0 m! O* x$ M+ ~1 b
- (set_tile "Handle" "None")
; ^1 T9 n1 [; ^& O1 m - )1 |# Y: [' b y! `7 o3 g" M
- )6 t, l4 w: P+ o% R- u1 q1 X/ m+ d
- ;;3 Z" c/ \5 T% }" b) P
- ;; Radius for ARC and CIRCLE+ n. h! f2 i! H. i( Y! Q, k3 W
- ;;. F* ^/ d- K7 ~. a
- (defun set_tile_rad ()
- v/ S0 ?# I4 @9 V( p2 b" k5 v - (setq radius (cdr (assoc 40 elist)))
+ x- g% t* I) L( ~4 e% u2 h( x9 l0 P - (set_tile "radius" (ai_rtos radius))
: _8 w/ s$ R& C% R% U1 u2 p - ), p$ d7 s, P' J% {+ a( _
- ;;) m% U& C7 m! c4 n: d$ {
- ;; Start angle for ARC+ L; ?7 A' T$ k8 c t
- ;;$ U3 K* w7 A( m! l% k0 i; S. P
- (defun set_tile_stang ()
E$ m( g+ O( V" X2 |' s - (setq st_ang (cdr (assoc 50 elist)))
$ A" r: g% Z) l) h$ b8 ]" h' Y - (set_tile "st_ang" (ai_angtos st_ang))0 V% y! N2 b$ c9 V
- ); Z* G8 i/ Y, V- M- b$ n* }
- ;;/ @ q, x0 W# D9 [* W0 H$ W
- ;; End angle for ARC
^. T- A1 o# B1 i/ H& A0 q9 H1 m - ;;6 F8 F: I O% x( S: g) R
- (defun set_tile_endang ()
4 {! Q. b3 F# I4 v' [6 E9 A - (setq end_ang (cdr (assoc 51 elist)))
# T1 ]$ u5 a! U) C - (set_tile "end_ang" (ai_angtos end_ang)): I _7 x2 {/ J+ v9 n% N
- )
( y% H8 q: |2 L) u1 J3 k ], K# I - ;;
4 f7 J: q' r: B0 P y" f( } - ;; Rotation Angle - Text, Attributes, Block insertions and Shapes
1 ]3 v( B2 a$ S2 d( g - ;;
9 c, _* h* j4 h' G1 D O: m- ~ - (defun set_tile_rot ()8 d1 ?3 j! x% f4 x, l
- (setq rot (cdr (assoc 50 elist)))
p- I) i7 k$ Q' j0 X - (set_tile "rot" (ai_angtos rot))6 j- U1 }% j. | a: X
- )" m8 B; w8 U( B8 Y$ B# n: A
- ;;
+ d$ S2 d4 e0 R, ~! D - ;; Height - Text, Attributes and Shapes
+ D7 m3 ?0 C$ [! v1 i' n+ i$ S" m - ;;# R4 i0 e0 x! t8 v3 x) K$ `' o
- (defun set_tile_hght ()8 ^% Y" m& T# G
- (setq hght (cdr (assoc 40 elist)))
3 Q. ^) Q* M6 @3 |8 H6 ` - (set_tile "hght" (ai_rtos hght))( S E! t; X$ y4 x
- )
/ g6 o4 d# ]# P! ?; S [ C - ;;2 Z- z% Y7 e. h$ I* T2 t# f8 ?
- ;; Width Factor - Text, Attributes and Shapes
+ l. w' j6 o! R - ;;! ~% S! r5 L) s: N3 F2 G9 g- R$ S" }, c
- (defun set_tile_wid ()- [; l. n; a4 Q
- (setq wid (cdr (assoc 41 elist)))8 h& w9 p! z0 ?% f$ P0 P
- (set_tile "wid" (ai_rtos wid))
% M% c2 D$ M* m$ J2 f { - )
, D# [$ k/ J O2 ~ - ;;
3 ^9 \' Y2 k; o5 Z2 o6 @# W, z - ;; Obliquing Angle - Text, Attributes and Shapes
" Y0 z7 ^8 ` A6 j0 p! h - ;;8 t* ~" b$ v) U1 c; o8 p3 \
- (defun set_tile_obl ()' \. j& I9 ^* h/ Y$ N' O. s
- (setq obl (cdr (assoc 51 elist)))
; ?9 n; R# J% I2 I9 C+ y - (set_tile "obl" (ai_angtos obl))
; }( B4 b! X% l% u - ). Q v$ Y2 V% u' D# A# E
- ;;7 i p% N; q* W5 {' K
- ;; Text string
l0 X" N# V2 ? - ;;% i$ H- N3 K9 h/ [. c( Y& I( f F
- (defun set_tile_text (); | D' n/ J+ r
- (setq text (cdr (assoc 1 elist)))
( ^4 C" i _) Q - (set_tile "t_string" text)/ ^2 d- }6 a! N/ _4 I
- )& ?/ x$ N7 l$ w0 w
- ;;' J Y. L' c& j: l3 a
- ;; Attribute Tag
4 U1 o5 o4 d% `/ y( f2 q - ;;1 N% C: W* F, }5 o7 I
- (defun set_tile_tag ()
( C& q8 k+ x/ S" V' @ - (if (= etype "ATTDEF"): s0 ^ r z) M5 b
- (progn. Z2 H7 [8 x+ a; q F+ x
- (setq attag (cdr (assoc 2 elist)))
: c% g, `2 U2 r3 \, K, \ - (set_tile "tag" attag) K: S9 B2 a; U3 n
- )% H, Y: ~+ r Y6 T
- )
! i* K& f7 @- m2 P! F1 P7 s - )- ?& s. s# |& J8 q/ C
- ;;
# E6 d' m! a) x6 o - ;; Attribute Definition$ G" L4 e0 L0 s, H
- ;;1 `! Z& k* K9 @* y
- (defun set_tile_prompt (): Q$ N, L. r/ f# g/ o' Y. p
- (if (= etype "ATTDEF")) a6 f/ q, |2 p- |5 l
- (progn4 R p% e& ]1 O" Q% X
- (setq atprompt (cdr (assoc 3 elist)))
1 c. ^" b. w9 O$ g9 s& ] - (set_tile "prompt" atprompt)
6 N& I. U" }0 n0 A) N# q, n7 t, U - )
, [9 x0 z* ^+ ]) u - )
* F! r; U5 R* ~' g4 M( ]5 a1 | - )
7 p- z* S9 f. K8 p5 y; N9 m' t% G1 A) w - ;;4 a2 [+ Y' s2 [3 Y2 z
- ;; Justification setting for Attributes and Text. Initializes
" ^- E( v5 A: r9 h' y - ;; popup list box
# @2 W9 M6 P$ C3 m - ;;
& k5 J1 B& B; E1 ?6 W+ |9 n+ a - (defun set_tile_just ()
( S) n; L3 F# l, U8 p - (setq ha (cdr (assoc 72 elist))) ; horizontal alignment
6 e/ S) X- u+ |8 N$ w! Z - (setq va (cdr (assoc 73 elist))) ; vertical alignment
5 `3 m9 p# Q" @: v; t - (setq ha-prev ha)* N( _+ _: Y! i1 S. O3 @. h3 J# x
- (if (= etype "ATTDEF")& q1 p! }# D0 e
- (setq va (cdr (assoc 74 elist))) ; vertical alignment
( U6 F0 U8 u, V! b. F7 K - )1 Q8 o- S3 e6 Z: O" b' i9 e* S
- (setq jlist, m6 r7 H: [8 v1 W) {; P
- (list "Left" "Center" "Right"0 A4 [7 x# \7 |/ ^
- "Aligned" "Middle" "Fit" o6 C; C& a P4 [1 ?
- "Top left" "Top center" "Top right"
$ u, M; \* E/ Q1 W# a - "Middle left" "Middle center" "Middle right") Y2 t1 t# v; Z8 s
- "Bottom left" "Bottom center" "Bottom right"
5 }6 [4 p- F) z) U. J( k - ): a# |. K4 Z, q8 j2 E) T+ h
- )+ K" I5 h" K7 F; ~
- (start_list "popup_just")' Q3 N2 d# }9 G6 h/ _! ?
- (mapcar 'add_list jlist)
8 S: w+ v, _/ ^7 r2 ?* b# Q - (end_list)
8 d4 h. ?5 o; d6 s; \ - (set_just_idx)
$ }0 A W X7 `3 W" n B - (set_tile "popup_just" (jlist_act just-idx))
% I# d% j D% e9 N - )% w, m* T( {4 t% [+ a8 W
- ;;1 b: ]- Q( d4 u! }. f+ B) M
- ;; Style setting for Attributes and Text. Reads symbol table for popup list
/ ~& e; S2 K1 n5 h) ]7 q) Y! M - ;; box.& S L% Q2 D" ^7 W" {. U$ h1 u
- ;;/ L I% i" ^# I6 t' z8 W+ K
- (defun set_tile_style (/ sname style-idx tlist)8 n( Y2 f7 [; {& h" z
- (setq tlist (tblnext "STYLE" T)
! d) P; L. M7 x3 s, o% w4 x - slist nil)
: M A O. x+ U; g# p/ a# c - (while tlist7 j2 j a, S8 b3 N+ Q" [
- (setq sname (cdr (assoc 2 tlist)))7 u1 D/ W- R6 v! I. U, C( B
- (if (and (/= sname "")
" K, Y1 `, i+ o - (/= (logand 16 (cdr (assoc 70 tlist))) 16))/ z8 d9 g: e& b. y! S* [
- (setq slist (cons sname slist)))5 u$ T, K5 \ Q
- (setq tlist (tblnext "STYLE")))
- R- a& A$ }9 ^6 f - (if (>= (getvar "maxsort") (length slist))' @4 R/ k+ A+ R
- (setq slist (acad_strlsort slist)) ; alphabetize style list$ L2 e' E2 @; g: q+ ]6 `
- (setq slist (reverse slist))) ; or reverse it to put it in DB order8 F1 G( O3 O# L L
" y! R+ ~2 b8 s3 r0 [- (start_list "style")
( H, t% H) \! I4 k8 C; E; W - (mapcar 'add_list slist). J; I. e' s) _! J
- (end_list), Y" j( Z6 ^, l% p8 J
- (setq tstyle (cdr (assoc 7 elist)))
8 n0 m) s" g: d/ w - (setq style-idx (getindex tstyle slist))
( j- u4 T- ^$ Y* q8 y7 [2 w( I - (set_tile "style" (itoa style-idx)). [1 @+ b$ ^6 \5 A- ]
- )
2 j- o" R0 g9 J8 C - ;;
: ~5 V, H0 ?3 z - ;; Text and Attribute setting - upside-down, backwards2 Q, h% ?5 X, x6 Q& m
- ;;# x0 u, ]& \( L M( P/ n* A
- (defun set_tile_bk-up ()
) \ C; A, Q+ s" f - (setq bk-up (cdr (assoc 71 elist)))* B9 L, N) v' m8 W
- (if (= (logand bk-up 2) 2)6 l6 ]' b- f' D& z, P4 u
- (set_tile "bkwd" (itoa (setq bkwd 1)))
4 }2 y# k/ B1 q a4 l - (set_tile "bkwd" (itoa (setq bkwd 0)))2 X% h) D4 Y c( r1 {2 n: g
- )3 u& i( a7 @4 J0 L) J
- (if (= (logand bk-up 4) 4)
" F: v" }8 @ r: Z9 K - (set_tile "upsd" (itoa (setq upsd 1)))
3 s( h U2 F) \' p - (set_tile "upsd" (itoa (setq upsd 0))): ]" E1 _! W( @. O# k3 W
- )$ \4 }; W) T" X; ~" S) x0 w
- )
5 J' S! v% U- `9 G9 u - ;;
' M! x7 I6 j* n Z2 t, P' p - ;; Attribute setting - invisible, constant, verify, preset
# e- m/ p5 Z2 N: g# S; j - ;;( M1 C: c- m; ^# X* r: {3 j# D; I0 S/ ^6 |
- (defun set_tile_icvp ()- [+ j5 }! Y- P. J$ n
- (if (not (setq icvp (cdr (assoc 70 elist))))
. N) b- E" }0 P& u5 I+ t" i* \7 N - (setq icvp 0)$ s- \( ~' l: k+ j
- )
* ~6 A2 ^: F0 x - (if (= (logand icvp 1) 1)
4 |5 g7 u* y0 H2 p# d* w. ^1 @ - (set_tile "inv" (itoa (setq inv 1)))
6 r0 ^( P9 g9 \0 @7 W# B, u+ q - (set_tile "inv" (itoa (setq inv 0)))
, n+ y( }2 L6 Q N' }# D - )5 M2 I2 q: L2 h, B
- (if (= (logand icvp 2) 2)) L# W/ m6 w/ U
- (set_tile "con" (itoa (setq con 1)))& C3 [ u. {/ n+ ]) P- V8 n j
- (set_tile "con" (itoa (setq con 0)))' f5 O1 i2 d, b( i6 @4 `
- )/ ^! e- r/ R' `, G
- (if (= (logand icvp 4) 4)
6 d$ \1 z' `, w" s3 n. z- E - (set_tile "ver" (itoa (setq vfy 1)))
Z0 y, f4 ]" u! L! S5 Z0 Y6 h - (set_tile "ver" (itoa (setq vfy 0)))3 Y# Z4 N# c8 s1 N
- )" a& B. ], j" v" J6 k4 K
- (if (= (logand icvp 8) 8)
) l V% {( L' e n5 d - (set_tile "pre" (itoa (setq pre 1)))
4 T. L# ?, }$ } - (set_tile "pre" (itoa (setq pre 0)))
0 n' y" I& c: a( _, V - )5 ?8 ~6 d5 U2 Z/ h' S
- )7 M$ E* G# _$ |& t: S2 f
- ;;
- c* `8 N7 k. R2 l9 I k6 U - ;; Scale factors for block insertions
2 J8 o& B2 ^8 J: k - ;;' Y1 M2 L6 _! G* H X6 b5 [! q
- (defun set_tile_scale (/ temp)
8 H9 I+ m9 ^3 y1 \9 Z4 K! |% h& o - (setq temp (getvar "LUNITS"))5 O: \! c/ t& r# g1 Q6 r
- (setvar "LUNITS" 2)1 T, j0 d' }$ j$ u8 U% J8 {
- (setq xscale (cdr (assoc 41 elist)))1 h) _+ m% r: f( m& F6 _
- (set_tile "xscale" (ai_rtos xscale))
! W- J x; ~8 K- w% k - (setq yscale (cdr (assoc 42 elist)))
; G$ z# u8 S6 I' L' y' C8 Z2 V - (set_tile "yscale" (ai_rtos yscale))
1 P& g0 C! d0 l1 T7 \6 A# s - (setq zscale (cdr (assoc 43 elist)))$ p0 C5 t" |5 s1 e. n$ p& s1 f
- (set_tile "zscale" (ai_rtos zscale))
+ t- h( f0 h$ L4 \ - (setvar "LUNITS" temp)' E$ \0 X5 h7 w1 P/ G, M
- )
* Q7 x: f3 W; b @" k - ;;- ~8 B' ]( F9 i
- ;; Rows and columns for block insertions* s- V) Y- k2 L8 a7 M
- ;;# T/ V5 _5 l% b
- (defun set_tile_rc ()- h( q/ P7 t$ V0 ?" P! N
- (setq columns (cdr (assoc 70 elist)))+ Y- L! Q7 E- X9 `& T
- (set_tile "columns" (itoa columns ))
2 O4 h/ h; r5 A6 F. U, X. R - (setq rows (cdr (assoc 71 elist)))5 ]3 I! y& X' A8 F1 D
- (set_tile "rows" (itoa rows))& [" q; Z8 A3 a+ |
- (setq col-sp (cdr (assoc 44 elist))); y, `, N$ L( i# H
- (set_tile "col_sp" (ai_rtos col-sp))
+ E; C6 ]- d: O3 p3 p - (setq row-sp (cdr (assoc 45 elist)))9 l8 F$ ^+ x+ }, O9 a: E7 f
- (set_tile "row_sp" (ai_rtos row-sp)): R# s# F# ?% Y8 @8 @& x
- (if (/= hasclip T)
' K" x4 q4 i' ] ` - (mode_tile "xcliponoff" 1)
+ x; I* |, f6 ]2 ^( m# |' E+ d: G - (set_tile "xcliponoff" (itoa xcliponoff))2 q1 M% s5 |( Y: P c% S" _+ M
- )
! [% w" m( E1 h/ ?2 I - )
' _8 }( H6 ?6 P4 |$ }, ?5 J" t% C4 Y - ;; T1 _& f1 V. `4 T8 C& q* S+ h* F
- ;; Invisible edges for 3DFACE1 L* ?* y0 b" u
- ;;
# u' b# Z* J6 n+ X; I. n9 z - (defun set_tile_edges ()
3 H+ s( o1 }, X( J# H; |2 r - (setq f-vis (cdr (assoc 70 elist)))
; V6 i3 o; ^0 p, S* D - (if (= (logand f-vis 1) 1)
( X: j5 [9 m* M - (set_tile "edge_1" (setq edge1 "0"))
5 q" p7 T# X- j/ ~: T2 G - (set_tile "edge_1" (setq edge1 "1"))
: ?6 E% x% W' r6 _ - )$ G0 ^+ a' q, ?: R
- (if (= (logand f-vis 2) 2)
+ V$ ]; r* _3 j) d( m - (set_tile "edge_2" (setq edge2 "0"))" {7 o8 o' X/ w. q! n
- (set_tile "edge_2" (setq edge2 "1"))
8 A4 _+ B3 v2 A& K, a& \; y - )
# v/ w* j9 R/ b+ K8 k- a" ^+ k - (if (= (logand f-vis 4) 4)4 ?+ }" `- y4 [- Y) J7 {; @0 U
- (set_tile "edge_3" (setq edge3 "0"))
, R, R& t* w% U3 A5 O; i - (set_tile "edge_3" (setq edge3 "1"))
- Q Y% g5 H& E) R - )
( n7 l. Y0 ^+ f3 Y I - (if (= (logand f-vis 8) 8)4 G( W& y$ U8 r' ~& s
- (set_tile "edge_4" (setq edge4 "0"))8 U5 m" m# h) U* M6 p
- (set_tile "edge_4" (setq edge4 "1"))
5 K% r: l- O: X P0 G2 J5 n - )
2 ]$ ]/ [& [* U - )
9 |' [, {4 _" |4 Y. S - ;;" F& x4 o/ @- G; @8 p" {1 M8 A
- ;; XYZ Point values for polyline vertex' o! B4 x" G: D5 Y
- ;;6 n# }4 P7 H- w# b8 B; p
- (defun set_tile_vpt (ptype)
* ~# y7 @1 i- E$ u' ^$ v7 X - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")/ G' _2 U$ P* j$ U- b) o( [! p5 n
- (progn( P# h# F* ?! c
- ;; ctr is 1 based, vertices are zero based.. ~% Q& X( H' r; A
- (setq vpt (cdr (getLwVert (- ctr 1))))
x' t4 X! D/ i0 ?: {% a - (set_tile "xtext" (rtos (setq x1 (car vpt))))8 l1 N# j% a6 h5 }4 P
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))
3 `) o4 S* R3 S1 a4 `; [ - (set_tile "ztext" (rtos (setq z1 (caddr vpt))))8 [; y, b) a1 F: h7 {$ Z. k
- )* d, G, j$ P) x4 r5 C
- (progn
, y* i; \4 z6 l% K. q4 \ - (if (= ptype 0)
: v! T8 T0 M. h* J+ {6 h6 g - (setq vpt (trans (cdr (assoc 10 vlist)) 0 1))
7 L! i7 H. Z! L, U - (setq vpt (trans (cdr (assoc 10 vlist)) ename 1)), G/ O; f5 d: _0 B. ?4 q, ]
- )/ Z+ q4 ^( O0 n9 q0 i/ U
- / E; A9 ]/ S' l, }; L
- (set_tile "xtext" (rtos (setq x1 (car vpt))))
2 x6 P4 k* P! m/ _. O - (set_tile "ytext" (rtos (setq y1 (cadr vpt)))): P9 H! E$ ?6 j7 N X* m
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
/ a( p f6 b5 E" x( v - )( }7 C$ M# p. @( P4 c( f1 E7 g- k" l
- )
( ~; H1 d& N8 A6 c - + ^3 e# X; [0 R- r! }1 F/ y
- )2 n w( ?) b$ n* N3 q! g
- ;; This is the equivalent to doing an entnext on the heavy weight
2 @5 o+ i0 _2 d. N4 r c - ;; polylines. The hard coded '4' below allow stepping over the
! U f% ~7 ~, e' v+ t - ;; 40 41 and 42 group code information. The while loop finds the+ a0 W5 _3 T6 N6 i2 K% ~
- ;; first vertex which will be used as the starting assoc in the
C: R! [& d0 P; h) ? - ;; call to nth.
. C+ E; c2 k4 H8 G, [ - ;;8 }. x! b3 o4 |1 O$ l
- (defun getLwVert (tmpctr / count tmp)# ?7 E+ O# y1 l2 o
- (setq count 0)
$ D, P$ l! g. m& s4 Y5 H! ? - (while (/= (car (nth count vlist)) 10)# N e6 \/ y# Y Z! v! a
- (setq count (+ count 1))
0 m3 F1 {4 C9 V) [& Q, Z - )
- ]( l; S0 X8 H- o: x; Z5 q8 M - ;; If the counter reaches the number of vertices,' m; b; e7 S1 v. n
- ;; reset ctr and tmpctr to zero again.
0 W1 x9 B; C4 B( ~6 m& k+ |2 A - (if (= tmpctr (cdr (assoc 90 vlist)))5 u: j0 p$ U# Z
- (progn# [0 `- K6 C) n2 F
- (setq ctr 0): V) k& q0 Z" U" N$ f7 n4 ?: S
- (setq tmpctr 0)
8 c5 L8 {! N4 m( d$ q - )
; C5 s8 X! W3 A4 s# J1 ^ - )
- n6 m$ _& e3 B5 `7 Z - (setq tmp (nth (+ count (* tmpctr 4)) vlist)): Q# v& f3 I+ F( K' ~
- (setq tmp (append tmp (list(cdr (assoc 38 vlist)))))
2 N. H) u' L" K, N - (setq pt1 (trans (cdr tmp) (cdr (assoc -1 vlist)) 1)) X, X7 d6 A7 y$ r: G, w
- (setq tmp (cons 10 pt1))
4 @; d# c; O6 x - (setq tmp tmp)
# _! E- q9 y+ D) g0 t3 n# k - )
l" n" L6 G) l# F6 V0 O" U - ;;
( m0 Q- S5 S2 \0 x: H0 S - ;; Set tiles for Spline properties. If the spline is rational then we$ L- Y5 n4 V3 i0 n. }: o# E& _
- ;; need to display the weight values of the control points, so set3 k* {& N4 `# y" P( J
- ;; flag to 1.9 f2 @8 k2 H$ \
- ;; 1 = rational spline
( d/ x% T( {, M$ q7 s8 n, I - ;; 0 = non-rational spline
, q& }; a' q) R - ;;
, ?! R& u1 y5 P7 X - (defun set_tile_spline_props ()% O3 v4 c$ E5 N+ r
- (setq rational_spl_flag 0) ;; initialize rational spline flag# c, d4 {4 n1 L h! I% [% `
- (set_tile "Degree" (itoa (cdr (assoc 71 elist))))
' G0 M* f1 R+ X" d; R8 ?" v - (setq bit70 (cdr (assoc 70 elist))). x* V' N1 q* F# A
- (if (= (logand bit70 1) 1)
9 O# @9 C$ N, T% b7 v* R9 \ - (set_tile "SpProp4" "Closed")1 U" c- F- I2 Z5 h4 W* u9 e3 g
- (set_tile "SpProp4" " ")' x8 I* s# `# l' r! _# p) z
- )
7 u5 A8 r( e: z/ P* g - (if (= (logand bit70 2) 2)
, m8 \" V; x7 N# I - (set_tile "SpProp3" "Periodic")
# N, D6 o: f" c) o+ `# C. i! @ - (set_tile "SpProp3" "Non-Periodic")
: Y4 e# G% I2 p& \# V - )
4 d+ n; d2 a+ N+ I: S - (if (= (logand bit70 4) 4)
* h+ }/ }6 W& s/ O2 J7 ? - (progn
' }* J9 R5 `4 _/ } - (set_tile "SpProp2" "Rational")
/ E9 |' s" a9 x8 ?5 C. w9 E6 T* v - (setq rational_spl_flag 1) ;; this is a rational spline
9 J) X7 u# g0 _+ b4 r8 Z1 W - )$ [- p0 V. _, S, Z
- (set_tile "SpProp2" "Non-Rational")% S" Y0 W' W" ~- }/ K
- )
9 ^9 [/ ]! Z2 _ S7 v! G9 Z0 l1 t - (if (= (logand bit70 8) 8)# l4 V+ ?4 Y8 O
- (set_tile "SpProp1" "Planar")
( }3 N# o( r1 p$ } - (set_tile "SpProp1" "Non-Planar")
' i! |4 {" c6 s7 A8 W2 T, h - )
" B: f% E, t5 I4 }' K+ | - (if (= (logand bit70 16) 16)
9 R) D5 ~2 t' Q$ O s. g - (set_tile "SpProp5" "Linear")
G3 v, e6 X: f) z. J - (set_tile "SpProp5" " ")
( s, H: d- y6 x. V - )/ _, S9 q: m) C9 k
- )+ s: u& Y" I, L b r
- ;;
/ ]3 x) s9 f% v* w4 y - ;; XYZ Point values for spline points7 I8 G z/ L0 E* Z: M! J! N$ E% V4 j
- ;; Need to account for WCS/UCS
8 p8 G8 e% c# v4 A - ;;3 }2 ~ L5 k9 m) p# U$ s; n3 U
- (defun set_tile_cntl_pt ()
$ g) |0 I$ k: ^4 m4 B - (setq cntl-pt (cdr (assoc 10 elist))). P1 m2 ?" L% A u4 f
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))
) m+ g, `1 r: ~' d - (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
1 S' d9 e- L% w+ k - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
9 ~0 u5 ?& J3 [$ R3 F: X5 E6 Z% F - (if (= rational_spl_flag 1) ;; if rational spline+ o0 H3 j& s; u/ P
- (progn ;; show weight+ x$ K- a9 {- q$ U5 h% A
- (setq weight (cdr (assoc 41 elist))) H* j, R2 P+ a/ G8 |
- (set_tile "weight" (rtos weight))
$ h$ }" g$ p' y5 Y" x' j - ) ;; else
" V& H H+ s$ G5 a - (mode_tile "weight_text" 1) ;; disable weight field/ H+ B/ E# }2 N: o" J0 E8 N
- )$ A1 B; ~6 s6 O d+ W
- )
% a, A) E9 R2 O* ? - ;;
% N3 R( I5 b8 I" I$ F - ;; XYZ Point values for spline points
" s2 j: R6 t% U. ]8 L! U/ |. } - ;; Need to account for WCS/UCS
3 X2 J5 @; q6 K# G% g$ ` - ;;
* C, Y0 t# A9 H - (defun set_tile_data_pt ()4 P: j) T3 ?; X& {& s" |
- (if (not (assoc 11 elist))
# ]" j% _/ e5 G - (mode_tile "data_pts" 1)
% R& t0 I) X5 w - (progn
1 ]7 v M, q4 n6 ~4 N& N5 Y - (setq data-pt (cdr (assoc 11 elist)))
. h) h: P! b5 ?3 {$ V - ;; display points with current precision.5 k- `9 T' @1 @0 v; T- m# U x
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
1 |* e" e6 a3 u$ |. I F' h6 { - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
; h8 B6 d' B1 u, C - (set_tile "dztext" (rtos (setq z1 (caddr data-pt))))
! h/ r% o# t* D! |% z2 {% Q - )
! B1 _( E7 n, [, i" x g/ a5 L - )
% @5 H. d K; C* \0 F2 o; {: ~ - )9 D |0 d; d$ g# L3 ^" m
- ;;
' Z) x3 J6 X" `4 N7 A) D - ;; Fit curve, fit spline, or smooth spline surface setting
$ L6 G$ X$ c. V+ v7 p - ;;4 o$ u6 Z" @( T5 v; x
- (defun set_tile_fitsmooth (), g4 _/ c" w, x
- (cond! c1 m0 m) x1 o9 R O
- ((= (cdr (assoc 0 elist)) "LWPOLYLINE")6 w; X- Z5 m8 O8 O
- (set_tile "none" "1"); |' T+ w$ N% v+ \( R' u% U$ U3 [
- )
9 n/ y4 ~4 k6 i0 {3 O - ((= (logand bit70 4) 4)3 D% J t7 {6 e( m6 G8 d! E# G+ T
- (cond
0 A# I! b% W. f; d3 S* D1 }$ j% U' p; c7 x - ((= bit75 0)2 @$ F ?6 ~! k
- (set_tile "none" "1")
5 c5 V1 ~0 F3 r( H% F; O& e - (setq spltype 0)) U* h' s+ |1 k% r1 l0 I# C
- )
. R9 ?% Q. L# y3 e5 [9 M - ((= bit75 5)4 z( f+ R8 P& w* M' {, |! S
- (set_tile "quad" "1")
5 j+ p% N" Q1 b - (setq spltype 5)
0 [' p+ l8 F! \3 E0 A3 y7 x - )% T' M# ~$ [1 ~. M9 S. ?" O. N4 ~# p( ~; s
- ((= bit75 6)% i l- V' s$ n% t% G8 H" p
- (set_tile "cubic" "1")
+ o% l# Z. u, J, K0 Y - (setq spltype 6)
! Y8 v" L4 b8 O- k- K* H4 }& @3 s - )
# k- J# F w# x# _' f E/ Q; f- t - ((= bit75 8)" H) F" M* r/ r; j
- (set_tile "bezier" "1"). h) C) I% Y& w
- (setq spltype 8)
% \% [, t" \' h1 D# c& ] - )0 F9 x4 H" U5 P3 \$ ^1 m3 f
- )) |" `( [9 H# N6 u( `( {; i7 O8 ~+ X
- )! V+ ~( M$ Q. S- J1 w% _& \
- ((= (logand bit70 2) 2). B+ i( |' i0 |6 u6 O
- (set_tile "fit" "1")
3 H- ^% g) p1 I5 Y$ \5 \. i - (setq spltype 1)
; V# k: U7 B3 F3 G7 ]$ S- R: s - )
1 ]2 u+ j! ]' _) N - (T (set_tile "none" "1"))
1 d3 K1 G4 R, R3 c- ? - ), X4 A) I* y- d5 m+ C7 ?# l
- ): M0 A6 `# C4 k) W4 S3 U5 N! T
- ;;8 x; ? {1 V; z
- ;; Closed or Open mesh and polyline setting
4 m+ F+ _: D8 o2 f: h" p- R- L0 s - ;;: u) T8 J3 e2 S* p- @
- (defun set_tile_closed (). R" u ]/ R' y4 ~
- (if (= pltype "3D mesh")
, E) `' x U& K - (progn6 B; k$ A) M( z
- (if (= (logand bit70 32) 32)( L& h; m" J$ t7 z$ M
- (set_tile "closedn" (setq closedn "1"))
) E6 x- [1 @$ d% r- `6 d7 F' L - (set_tile "closedn" (setq closedn "0"))
, A$ k! [' |7 R - )
7 F7 n/ M; Y; ?; M% z! p& D6 {: H - (if (= (logand bit70 1) 1)
# ?4 l7 H& | Z/ [3 V! P - (set_tile "closedm" (setq closed "1"))- {" B4 B; i; D" W" _% A
- (set_tile "closedm" (setq closed "0"))
p4 j- g6 o. {5 H3 K* ^1 Y5 p, _) [ - )2 {- V* ]9 p) F( M5 x
- (setq old-closedm closedm old-closedn closedn)
" J' x7 t. r, z3 P& C6 l# v+ l' M. { - )# A7 R% _/ e5 z' [! X M& E
- )
+ x4 a9 Z; I; B5 t. n" x( b2 p - (if (or (= pltype "2D polyline"): r# B0 \0 u. M, _0 C
- (= pltype "3D polyline"), n$ L7 K7 N1 N$ Q, @" v
- )5 d6 j6 s+ d2 S% K1 o8 w% r
- (progn
1 F" k4 E2 p) U/ ?$ H7 [ - (if (= (logand bit70 1) 1)9 L* o4 X( P7 h
- (set_tile "closed" (setq closed "1"))3 [( L8 D, n6 f; H1 K
- (set_tile "closed" (setq closed "0"))
# P7 L; h" I2 F - )5 B9 J9 J4 y- @9 [4 ~2 c0 k
- (setq old-closed closed)4 \' z& x* P& R7 \1 Z- H: Z; W
- )- S$ G8 C/ o7 R( Z# U
- )$ I1 t2 ~, C8 b" R: b, e
- ) x3 F7 R& Z# }! s
- ;; Set common action tiles$ j, n4 W, A' o2 c6 q
- ;;# K2 ]* w6 y# }/ L& u4 V
- ;; Defines action to be taken when pressing various widgets. It is called
9 W& c! L- \8 C) i - ;; for every object dialogue. Not all widgets exist for each object dialogue,: t' k" a" D! ~
- ;; but defining an action for a non-existent widget does no harm.
. t i% S4 H* m( _- \ - (defun set_action_tiles ()! m! E# q# f& U& w* r3 v
- (action_tile "cancel" "(dismiss_dialog 0)")3 {, O6 O) G& R/ y
- (action_tile "accept" "(dismiss_dialog 1)")
1 p* {5 `6 o8 r, S8 W* Q - (action_tile "help" "(help \"\" help_entry)")
- ~+ C; z/ C+ ^, p2 @6 e! b9 G - (action_tile "b_color" "(getcolor)")
n* X8 n8 {" S$ v+ ? - (action_tile "show_image" "(getcolor)")* ^# P+ e6 b' x+ a2 Q
- (action_tile "b_name" "(setq elayer (getlayer))"); l; z; P+ r9 p8 o( [3 r5 q
- (action_tile "b_line" "(setq eltype (getltype))")% a, M; O8 x5 N% w1 D! s
- (action_tile "eb_thickness" "(getthickness $value)")
: Q3 x8 ^/ i( ?. k& C- ` e3 p - (action_tile "eb_ltscale" "(getltscale $value)")
0 Y p) R1 v3 R9 \/ H7 W
( ]. ^" V* S3 [- (action_tile "pick_1" "(dismiss_dialog 3)")
8 P& d7 o- z5 M- K' Y6 } - (action_tile "pick_2" "(dismiss_dialog 4)")5 W) {7 O$ F0 \; V4 c* C5 I
- (action_tile "pick_3" "(dismiss_dialog 5)")
5 r6 `; }, G9 |6 t2 @0 A. n4 k - (action_tile "pick_4" "(dismiss_dialog 6)")% h, p2 ]; G& a
- (action_tile "x1_pt" "(ver_x1 $value)")# O8 v) G) B: W& I2 p
- (action_tile "y1_pt" "(ver_y1 $value)"), z1 F: M J: B9 W
- (action_tile "z1_pt" "(ver_z1 $value)")) Z) `. @; a# O
- (action_tile "x2_pt" "(ver_x2 $value)")$ B& G6 I! k+ |% R
- (action_tile "y2_pt" "(ver_y2 $value)")( y6 {- e9 r1 h/ j! G8 O; Z6 Q
- (action_tile "z2_pt" "(ver_z2 $value)")
, l) a& y8 | T" {3 J - (action_tile "x3_pt" "(ver_x3 $value)")
" h5 V1 D* ]; Q# i _, X - (action_tile "y3_pt" "(ver_y3 $value)")
j% [0 h( d& a( n7 i& K - (action_tile "z3_pt" "(ver_z3 $value)"), e) P3 n8 Z5 O, _9 \
- (action_tile "x4_pt" "(ver_x4 $value)")
0 ]8 ~4 C& v, S/ F: f: { - (action_tile "y4_pt" "(ver_y4 $value)")
! G+ Q9 g2 I5 n; P8 `5 E5 O* [9 ? - (action_tile "z4_pt" "(ver_4 $value)")" W" A5 s4 C: F$ E" {
- 5 F7 _/ s6 r9 p2 Z2 G* }
- ;; Action tiles for Xline & Ray
3 d! h- P+ y) D - (action_tile "xline_x1" "(ver_xline_x1 $value)"); k1 V; E% m% w. n) Z
- (action_tile "xline_y1" "(ver_xline_y1 $value)")' @! M/ L3 N$ R) I8 O7 P1 B; q
- (action_tile "xline_z1" "(ver_xline_z1 $value)")5 o/ b: F P; V3 x6 k3 T8 e
- (action_tile "xline_x2" "(ver_xline_x2 $value)")) g: N( [5 `3 o7 f
- (action_tile "xline_y2" "(ver_xline_y2 $value)")3 A$ a6 N( y. o/ C L
- (action_tile "xline_z2" "(ver_xline_z2 $value)")
2 O3 o3 `3 X1 e/ b- b' X
* T! s' h1 \* A# L3 m+ Y- (action_tile "edge_1" "(setq edge1 $value)")& c# D( l/ ~5 G/ O! n5 j
- (action_tile "edge_2" "(setq edge2 $value)")
6 R3 c# m# b" M3 ~ - (action_tile "edge_3" "(setq edge3 $value)")2 C9 C2 E; k# b% T: o
- (action_tile "edge_4" "(setq edge4 $value)")% A. U H" [" N$ v- g) Z
- 8 R" ^5 R$ h& @6 z4 v4 V) l
- (action_tile "radius" "(ver_rad $value)")8 z# |/ @" _% Y; R- Z- ~" z. V
- (action_tile "st_ang" "(ver_ang1 $value)")
0 w& M7 F6 I V& O, G7 h' p/ x - (action_tile "end_ang" "(ver_ang2 $value)")
& N5 g" |3 m7 C& v, q - (action_tile "end_eang" "(ver_eang $value)")
/ M: ~3 ~* l1 l& h; ^. d. q - (action_tile "minrad" "(ver_minrad $value)")
7 A/ t: _6 l3 c$ W - (action_tile "majrad" "(ver_majrad $value)")6 J6 [1 q# |1 Q6 f6 G$ N* P
- * R, _4 g' T) n3 n* `* F& [$ R
- (action_tile "xscale" "(ver_xscl $value)")
2 n0 }# d* J% ?. m0 x - (action_tile "yscale" "(ver_yscl $value)")
) ?* T& B- o% o; Y - (action_tile "zscale" "(ver_zscl $value)")
* g% z) d# A' ~ - (action_tile "rot" "(ver_rot $value)")* D) m/ d# D7 v
- (action_tile "columns" "(ver_col $value)")
. N: s# c5 \# r$ m: \, k1 o - (action_tile "rows" "(ver_row $value)")
: J9 k: f& {$ Y- G/ Y - (action_tile "col_sp" "(ver_colsp $value)")1 B' G# X0 i" v8 W1 f
- (action_tile "row_sp" "(ver_rowsp $value)")
8 T3 w8 P. U$ H3 h/ v# p1 Q( g - u& H6 s6 @& l$ b3 o
- (action_tile "hght" "(ver_hght $value)")
) J3 c, W' k/ N0 [7 B0 M& C - (action_tile "wid" "(ver_wid $value)")4 L0 ?* i9 Y+ p. L p
- (action_tile "obl" "(ver_obl $value)")
0 B7 k8 L, `2 H/ N3 ^/ s - (action_tile "style" "(style_act $value)")9 k& o! S' d8 A) V, a0 g
- + \$ z6 @& v2 w5 x1 ]% \9 W/ T
- (action_tile "t_string" "(ddgettext)")
9 f3 F: f4 R1 R9 e# U" {& X( M - (action_tile "tag" "(ver_tag)")
* ` l& F. {# u0 [! n5 G - (action_tile "prompt" "(ddgetprompt)"), G! Y. {9 @+ M# e$ |$ [ `: N
- (action_tile "bkwd" "(setq bkwd (atoi $value))")- \# D1 ]: k) \; X5 i$ u# \: |
- (action_tile "upsd" "(setq upsd (atoi $value))")
/ s( m) |7 I" C* r* T - (action_tile "inv" "(setq inv (atoi $value))")
& _. t5 b+ t- k5 G - (action_tile "con" "(setq con (atoi $value))"). o" {0 J- ?' d; }% M
- (action_tile "ver" "(setq vfy (atoi $value))")
& X1 M% S- W" T# I) ?/ a, ?, n1 S s - (action_tile "pre" "(setq pre (atoi $value))")
# } F% f( d* ^! I7 g - (action_tile "popup_just" "(jlist_act $value)")
( |8 H4 E' L5 E0 I. q) X& n# c - 7 J" h T8 E9 a, }
- (action_tile "closed" "(setq closed $value)")( ?" u; k7 E+ E& n/ w* j" O
- (action_tile "ltgen" "(setq ltgen $value)")
! y4 I; e. i- a) x - (action_tile "closedm" "(setq closedm $value)")
" l' V- Z( R2 y9 I+ x: W$ r - (action_tile "closedn" "(setq closedn $value)")
# c# d7 J( M1 B. ~ - (action_tile "next_v" "(next_vertex)")
5 P. i$ l5 L' T# t. D5 e - (action_tile "xcliponoff" "(setq xcliponoff $value)")4 {0 z. F$ H4 k5 ^
- 5 r' k1 X# a3 _( c
- (action_tile "next_cntlpt" "(next_cntl_pt)")
. l" u& B) V2 G; e - (action_tile "next_datapt" "(next_data_pt)")
9 j8 ]6 Q# \$ V, m. h - 1 l5 a5 |( h8 H$ C8 Z; G9 e! E6 t% Z
- (action_tile "none" "(if (radio_gaga \"none\")(set_uv 0))")! v; w3 j; B( e
- (action_tile "fit" "(if (radio_gaga \"fit\")(set_uv 1))")
0 N( [4 n$ {! m# K1 p7 S) C - (action_tile "quad" "(if (radio_gaga \"quad\")(set_uv 5))")
# Z0 V8 W* O) O. L: j% B - (action_tile "cubic" "(if (radio_gaga \"cubic\")(set_uv 6))"): D( p D& r3 n, a: l$ K
- (action_tile "bezier" "(if (radio_gaga \"bezier\")(set_uv 8))")1 C$ \0 P8 j% }( N
- 5 m9 s5 w0 {4 ?4 p# H
- (action_tile "u" "(ver_u $value)")
7 l6 D9 J! Z: K$ `! `" D - (action_tile "v" "(ver_v $value)")
; I$ u- j+ l: n5 S4 q: [ - )7 D, M. s% e/ Y1 a4 [
2 S6 P4 c+ G3 k& y( H) N5 v- (defun ddgettext()
2 \) o9 I* ~9 B% s; H) [ - (setq text (get_tile "t_string")). u3 X* J$ D4 B7 Z
- )' _; [! S: P& o: @" g
- 4 v' @! |) [4 N) ?" H( a) U" ]7 G- ~, e
- (defun ddgetprompt()
2 B0 j$ |* ~- H- R - (setq atprompt (get_tile "prompt"))
2 K' G( m$ h" \# ?5 e% w: d. B - ) P7 k" k4 h3 Z9 G) O6 ?0 t
; \. o! B. b* z5 S, \# L3 D- ;; As OW doesn't support disabling of individual radio buttons within
- k" _! q. Q) F, A" G) E - ;; clusters, a check must be performed as to the legitimacy of the/ ~. v+ ?# m/ H, |
- ;; button pushed and reset if necessary.2 e. b8 _5 |1 Y5 z p
- (defun radio_gaga (pushed)
* {2 |7 W8 a* X: w; U8 j$ ` - (cond
* f( `# v; `+ Q r5 V; {5 V- ^8 n - ((and (= pltype "3D polyline")) }2 O8 e' m5 y4 V4 I% G2 ~
- (or (= pushed "fit")
; i. j3 o+ F1 w2 X- k- t3 {& g! V' c! f - (= pushed "bezier")
* Y( g! _6 P1 q# d9 [0 } - )* x/ g& ]6 a& e* }
- )
2 B3 B! X6 k3 C$ r2 F+ V - (set_tile "none" "1")( p) N# D% ~. t& J# @4 p% h
- nil/ p) T" y8 D3 B! v; t Q
- )* U+ ~/ t. m# G9 V3 s# L
- ((and (= pltype "3D mesh")0 g8 P2 y" u# O" L: P
- (= "fit" pushed)
( e( h) Z! q4 C - )
# h7 E% p- V# t7 S' h e/ l - (set_tile "none" "1")
0 U( p; D& f, d" x! y, l, [9 a5 \# s - nil* }/ e% r4 |' P7 W9 f( v
- )
3 M8 n: B: X: o3 k4 m; _" B. }1 K - ((= pltype "Polyface mesh")
& G# [6 r | S! F - (set_tile "none" "1")0 B, F( o, e9 o/ M" n9 {! T. R* w
- nil) X* s: M# I$ ^) D, w4 n
- )
% b, \0 P4 C1 o. }: v( D3 f - ((and (= pltype "2D polyline")7 p" P. m" C8 X3 H5 P# I Y
- (= "bezier" pushed)
, g, ^' Z v# s( |/ u2 l - )
* n) n+ `) O. m' G( `7 d - (set_tile "none" "1")
! w3 S( f& e# q - nil J+ s' ?& @( o g3 F; x3 c" z
- )$ M+ D! Z( x9 F
- (T)" G7 u$ l2 m: x0 y7 u4 _. ^7 `
- )
1 q- l* X- E8 V9 ^+ y - )- i0 \/ q5 e7 d8 x- l
- ;;
7 l% W9 |1 f; P+ i* }) ?- {! D8 o - (defun set_uv (type_n) x M- d7 |' K h' D" L- r4 ~' x
- (setq spltype type_n)
0 C5 d" M" h: [ - (if (= pltype "3D mesh")
3 x* g2 N9 J; x/ L) C) E - (if (= spltype 0)
( T( o0 Y/ M$ d- W% x! b1 W5 ] - (progn" B" z; q8 e0 w d- {7 g* F' h, T
- (set_tile "u" (itoa (setq u 0))), A; |; O; s1 D
- (set_tile "v" (itoa (setq v 0)))
/ \/ W7 E7 u0 F - )$ u4 `0 g' m: Q7 b5 E
- (progn
. G- R) X& E# Z! }7 r) S - (if (= u 0)
8 f; z: Z) g! S - (set_tile "u" (itoa (setq u (getvar "surfu"))))
" f+ C9 V4 D B; j - )
# R7 g" {; p$ [* u9 a - (if (= v 0)4 T1 o. b2 D4 c5 ~8 T
- (set_tile "v" (itoa (setq v (getvar "surfv"))))
# k" k0 ]: t6 A1 p' W. k - )
, G- G$ b, S( { - )
. M; x# H) r4 s+ [+ n' i* _8 P - ) J) f% f! f& O- s2 f1 c
- )
3 {3 |$ S# k; X: c - )1 U$ _8 M) A0 F7 B
- & u! m, B1 W$ j2 ~9 h7 o
- 4 {8 e# J# A: F! n
- ;;
: R" Y6 y" f& }: |; N - ;; Verification functions
7 [, j: Z% N! t' _( n6 e: J - ;;1 ?% `+ f: z5 m$ K, w
- ;; Verify distance function. This takes a new X, Y, or Z coordinate or) ] w7 M7 Z: B7 {) }% M& G8 S
- ;; distance value, the tile name, and the previous value as arguments.
+ ^+ v9 {; b+ I5 _+ F; S! d$ a - ;; If the distance is valid, it returns the distance and resets the tile.
+ R' u9 ]" u2 A: w% @4 o! \ - ;; Otherwise, it returns the previous value, sets the error tile and keeps3 X" q9 R/ t0 a- M: G# b3 A
- ;; focus on the tile. Shifting focus to the tile with invalid value can/ `- B6 { w6 b0 O
- ;; trigger a callback from another tile whose value is valid. In order
2 q& h) i8 W+ b - ;; to keep the error message from being cleared by this secondary callback,; z- v- T7 \- E5 g% }* z' J' S: I
- ;; the variable errchk is set and checked. The last-tile variable is set6 f8 E5 W# ?( e& q2 @) d' {' I
- ;; and checked to ensure the error message is properly cleared when the
# \- L, ^2 w: I1 N" p- G' q- f - ;; user corrects the value and hits return.
9 {- I$ R4 E' _ - ;;$ J1 k5 ~4 v1 V5 a( T
- (defun verify_d (tile value old-value / coord valid errmsg)7 x9 w7 ~- |5 B* D& M" p) a$ Q
- (setq valid nil errmsg "Invalid input value.")
, Z9 }* ?4 f9 I1 N3 f9 _$ K - (if (setq coord (distof value))
( w- }) q/ w& k5 H - (progn1 Z" l4 A# m* `. C* J3 A6 r
- (cond
" E/ q) g7 u0 L9 \ d- i - ((or (= tile "radius")+ x# o8 y& X L9 Y4 G
- (= tile "hght")$ _+ u2 x t/ n: K
- (= tile "wid")
9 A; S* X* V. t7 G& J - (= tile "majrad")
9 D9 @2 |0 |% t2 z; J - (= tile "minrad")
2 V/ `0 J3 d2 S8 x - (= tile "eb_ltscale"). a, K" y6 D1 {2 [
- )* k1 o; T N. U0 H
- (if (> coord 0)9 r, ^3 d( I- [& w
- (setq valid T)
! r+ K& @ [# v7 { - (setq errmsg "Value must be positive and nonzero.")
% t' b6 `/ ]$ e/ z - ); ^: E7 i3 ^# t7 q* `" n9 F
- )
1 q1 Y2 T z/ A4 o! m - ((or (= tile "xscale")
4 ~, [5 }# V( F, A. I" M3 ~ - (= tile "yscale")
' l8 g% e" K {6 w# y+ P - (= tile "zscale")$ p6 v- J, t3 @ c
- )
% u8 E( }' `% V- B$ @ - (if (/= coord 0) e4 l8 e% Z' T$ x8 x) t" [
- (setq valid T)6 u2 t: X. y5 e# P! @0 I+ |
- (setq errmsg "Value must be nonzero.")
P- Z9 z8 X7 m( P4 t0 G" @/ Q/ Y$ C - )+ t- E) R' S9 [
- )
5 x% s/ J8 @: Y7 c4 V: P( f( N - (T (setq valid T)); I( l5 M) @" x6 F1 B: v/ d" N
- )9 V9 I0 ^* O8 V( y. k& p
- )) d4 T& R+ d& k' g; A* a1 s
- (setq valid nil)
7 _0 q- c8 ^( D - )
7 V {6 u5 m% J7 q: n8 n4 x - (if valid
; s) Z* r: i: ~9 ]1 y - (progn" Y! u" |/ T$ M
- (if (or (= errchk 0) (= tile last-tile))
* i; V& E7 Q5 s$ {8 [4 T/ U+ @ - (set_tile "error" "")
. o5 n/ Y" J/ e! e8 k. W - )! G5 e+ O& y4 l( f. [( v6 \
- (set_tile tile (ai_rtos coord))" q9 S2 M+ J9 l ]5 q. C
- (setq errchk 0)" q+ @" D+ s( ^) q
- (setq last-tile tile)# s; j; ` _7 a' q2 I' n
- coord, a: s: e) D5 _$ q; z0 o
- )( x, U( G- e% l) U! v7 h, {9 Z
- (progn
4 @0 ? o" f4 B. E/ p& l3 p! Z) I - (mode_tile tile 2) ; Move focus to offending field: u2 Z) p# X# W9 w6 Y1 n; B! g
- (mode_tile tile 3) ; Select offending text
5 n. c2 c9 n( D$ Y8 D) e* V3 f5 i% T - (set_tile "error" errmsg)( S; b/ s6 i5 R* l" H
- (setq errchk 1)* H+ I8 Z! |; ?" h
- (setq last-tile tile)- h" V, ]3 [. P6 z' ]5 `7 E* L2 o( v* x
- old-value
0 S3 O. s7 o6 P$ z - )
" L# F4 i8 v- a/ D - )
! }2 ]( ?( @' H q+ D4 C2 I7 ?5 A - )$ z9 v# w/ ^1 ]; B; W
- ;; Function for Xline coord edit box checking.
! E0 I! \9 a5 `( u7 m! q - (defun verify_xline (tile value old-value / coord valid errmsg)
( j" B6 D" P8 Z, j$ `- G - (setq valid nil errmsg "Invalid input value.")
$ x" {' s1 L& b. @; C' k1 d% Y - (if (setq coord (distof value))
$ ^" j" f/ O. A3 g' U* m' U - (setq valid T)' L) I' [( I! z* l! n
- (setq valid nil)( }& r& A& N ^) d4 N
- ); I# x: z( c2 b& D0 V/ r1 v' y
- (if (and coord6 m. p- R; `8 D! r+ Z; x* y
- (and (= (atof (get_tile "xline_x1")) (atof (get_tile "xline_x2")) ) T) i7 A: u+ e5 d" ]9 x% L% D- C2 _1 }
- (= (atof (get_tile "xline_y1")) (atof (get_tile "xline_y2")) )
; ~+ t8 w# W7 P' D/ u1 g+ I - (= (atof (get_tile "xline_z1")) (atof (get_tile "xline_z2")) ) @3 \, h9 d2 X
- )
0 ?) ?6 C& f* u q6 F- r8 w - ): [8 m+ n, f# O! m# n. g3 v; \/ i
- (progn
7 V" u& A' A; _3 T; M - (setq errmsg" k Z' x% b2 x9 F3 ~
- "The Root point and the Second point cannot be equal.")
3 E! Q2 w$ C* t b - (setq valid nil)0 d/ J$ R& Z% w
- )
) {( I2 j# l- c. D. y - ): \* [; o* ~6 o9 s
- (if valid8 g0 ~: L/ Z8 [" l& S
- (progn3 i" s, `0 u' P1 S
- (if (or (= errchk 0) (= tile last-tile)) W' y: `( E8 U6 F. k5 Y9 I; e
- (set_tile "error" "")
/ T) Y/ C( y. C6 y - )
! E# C9 T. {8 Z& t - (set_tile tile (ai_rtos coord))
; M/ H. j. u# {$ A - (setq errchk 0)
" }+ R$ i- o4 a/ s - (setq last-tile tile)3 k0 t' j1 u; l% ?2 ~
- coord
& @/ q L( m% t9 k3 ]3 G: p& i - )
$ z8 X/ ^+ B( N" t - (progn
& ?5 X8 Z8 v3 i j - (mode_tile tile 2) ; Move focus to offending field7 ?! ^" j ?. L! \
- (mode_tile tile 3) ; Select offending text
6 B8 [4 h9 h4 n1 _ - (set_tile "error" errmsg)
( ?: i$ N2 W7 r( J I; q2 V5 v2 z - (setq errchk 1)2 t5 t H8 [- n3 b0 L0 Q+ B
- (setq last-tile tile)2 K5 y8 @1 a) W; e1 f
- old-value0 R, z0 ] ]: r( w
- )
5 y/ k1 p5 @8 ~1 l2 d) j - )
1 H; H8 p; w; ]: b# ]" x - )
9 b2 r3 F9 {/ h5 I. S5 ^
' h5 j( L+ W8 ~# W- ;;
, h2 F7 w/ W7 e - ;; Verify angle function. This takes an angle and a tile name as arguments.3 z- h2 g/ ?7 [( F
- ;; If the angle is valid, it returns the angle and resets the tile.1 b0 P+ [5 ]% o5 O# u8 R& P$ M
- ;; Otherwise, it sets the error tile and keeps focus on the tile.* q2 Z; d% p+ y: r; s
- ;;# I1 h% k* ^. D" M3 S, Z* P
- (defun verify_a (tile value old-value / ang valid errmsg oblqmax)5 p* _+ _) @- P( N; }; ^" P
- (setq valid nil5 ^: c" u4 r) V
- errmsg "Illegal input value."
& }% E* K! G: ~& ? h/ |) C - )
( |0 G& X3 X! |+ d) o$ ~$ W - (if (setq ang (angtof value))$ R6 A; }3 s3 U, Q- R# P6 y
- (cond
X1 K- `& f/ T. Q+ ^ - ((= tile "obl") ; Restrict obliquing angle
4 L8 ~6 c( O9 A - (setq oblqmax (+ (* (/ PI 2.0) (/ 85.0 90.0)) 0.000001))
7 ]+ G/ F8 S( y9 |0 ] - (if (or (<= ang oblqmax)- g/ k w7 r$ D- w
- (>= ang (- (* 2.0 PI) oblqmax))) t P+ f: E7 W5 G
- )
4 I. j7 [9 _" G6 r! m - (setq valid T)
5 B8 W! V8 S* Q. v4 R4 V - (setq errmsg
1 Y- B- ?- i, L$ Q+ f - "Value must be between -85 and +85 degrees.")
% z0 F! r/ Q9 b" C8 T& a5 C K - )
/ k$ |( a# w( l+ w& ^# C - )3 k$ O" G# H j4 ]2 [
- (T (setq valid T)) ; Other angles not restricted
) k' u! u2 {1 Z - )
" }+ ]3 `, D* @( A+ K: Z2 U1 r - (setq valid nil) ; Invalid angle input" R) ~ s6 y: r
- )7 V: w. U# e/ }) k4 g" j! L" R. b
- (if valid
9 Y/ N S5 U" v" i7 c: `6 S - (progn0 W, E! x8 ~, g1 Q; w5 V; ]+ V
- (if (or (= errchk 0) (= tile last-tile))2 u% }; _3 p f6 R9 ~9 d* V
- (set_tile "error" "")1 F1 a- W$ ]! Z! L+ b6 ?) F5 T; b
- )
: t5 [; ~7 Z4 W; L1 S# A! i1 S! v% |" p - (set_tile tile (ai_angtos ang))# o! k/ j7 H' C9 M. d& `
- (setq errchk 0)# p5 L9 o N+ {" @1 f; Z
- (setq last-tile tile)" d/ I& v4 n! f: M9 a) \
- ang2 o0 e& z9 M9 b
- ); x+ \, D$ v( N' Y
- (progn1 C+ B9 X2 r6 w/ G. W( l$ V
- (mode_tile tile 2) ; Move focus to offending field
; k2 {9 x: x4 y& } - (mode_tile tile 3) ; Select offending text) r! I$ ?* t1 T6 Q0 d' n
- (setq last-tile tile)
! ?% d" z2 A$ _1 L1 M% x2 u. { E% K - (setq errchk 1)
4 {7 h, u8 a+ b" s4 }% Q2 a& C - (set_tile "error" errmsg)
) W C; b0 v; [- M - old-value
* o/ K( a) Y" w$ e1 I$ X/ Y - )9 @4 V$ }5 C$ B" t2 ?
- ): S+ A3 K" C4 Y$ b9 D t$ f+ d
- )3 I4 G! d, |/ ]1 @
- ;;
) c8 v/ Q* Z+ A - ;; Verify angle function. This takes an angle and a tile name as arguments.5 ~" d- _9 P, l
- ;; If the angle is valid, it returns the angle and resets the tile.4 Z% g/ k( P; I3 p' u* d
- ;; Otherwise, it sets the error tile and keeps focus on the tile.& ]! }4 A9 j5 w. A% U
- ;; This function is specifically for the end angle of the ellipse object. If$ ]) j- n8 J# M, G" z5 c& f
- ;; the end angle resolves to zero then we want to display it as 360.
" k+ b* v: [2 z: v - ;;. B- `: ]; C! j4 T" X
- (defun verify_ae (tile value old-value / ang tempend)
9 x# O. R- [* u4 ^) h) Z+ J - (if (setq ang (angtof value)), c- q- I b, a4 G1 f8 V
- (progn
- C h# ~; Y* x0 b - (if (or (= errchk 0) (= tile last-tile))/ c. ]' K' g/ `- m
- (set_tile "error" "")
. P+ d# z) `$ N2 x0 f1 e9 u! U- O - ); m3 F. i8 {# Q
- (setq tempend (ai_angtos ang))
8 A+ ^" d: P/ e1 t - (if (= tempend "0")+ {( J. X9 C' U. f9 U) v: W: q5 V, G
- (set_tile tile "360")$ ~# D) n2 k$ B+ ~+ l
- (set_tile tile tempend)
# z; y7 }! i2 N - )
4 s& U+ x5 \& x# d. U' m - (setq errchk 0)& q* b% o/ y! }& K. Z/ W
- (setq last-tile tile)% c) n( ]' w) R/ D) H0 o! `
- ang8 i5 P( H$ Y, v6 U$ x% d
- )
2 W+ K: k" Y$ w& h- u - (progn2 l- V7 Y/ q0 w; t, o8 r
- (mode_tile tile 2) ; Move focus to offending field/ g$ d4 U/ i+ [: W
- (mode_tile tile 3) ; Select offending text
9 S, }0 Y' F& z* e( a1 F' H - (setq last-tile tile)4 F# O2 P, `; T" F
- (setq errchk 1)
% E2 l% O( ?! ~6 F( o - (set_tile "error" "Illegal input value.")+ L$ x7 R6 s/ z, ]( ?
- old-value
/ X; b8 Z' b4 F5 @% w/ r) g0 \ - )& P1 q/ j0 f+ j* E B3 d
- )
5 e2 C2 a* z' f1 N - )
7 ]) t S7 t$ Y( k+ k) n) Y0 z+ [ - ;;. |! m. P5 J& v8 m" g4 o3 n
- ;; Verify integer function. This takes an integer and a tile name as+ X+ ~) {7 z! T( L. _" Y
- ;; arguments. If the integer is valid, it returns the integer and resets the( q8 U" h) a/ a& j6 x% I
- ;; tile. Otherwise, it sets the error tile and keeps focus on the tile.
0 l$ {+ u: G# Y: p - ;;
, W/ a4 z1 | k - (defun verify_i (tile value old-value / int valid errmsg)
% }& N: m$ e; @' A) h6 s/ `0 K - (setq valid nil)$ E3 H v( t) H* E N3 ]$ [
- (setq errmsg "Value must be an integer.")
5 q! ?" @& d! J( m0 T& h9 {- `7 ~) s - (setq int (atoi value))
9 N3 M" |# k+ \ t/ o2 r; N4 ] - (if (setq intchk (distof value))1 C3 L f/ y/ d; z) t2 D7 V
- (cond2 o2 v, c( f# |0 X
- ((or (= tile "columns") (= tile "rows"))8 a2 t7 S% \ s
- (if (and (= int intchk)5 Q, y* K' y7 S! N. U
- (>= int 0)
$ P; l* o. b' R$ d+ ^ - (<= int 32767)
/ B- [0 i4 G8 H" r7 ?: W2 o - ): }4 h9 s. p- I, b0 M! X
- (setq valid T)' r8 W# J5 o; K6 T
- (setq errmsg "Value must be an integer between 0 and 32767.")
. W2 C; P1 d/ J; H4 n - )
: Q+ B( g5 ]$ ]/ P/ Y4 g" k - )
6 b& m6 a, O V1 t/ N$ V - ((and (or (= tile "u") (= tile "v")))! T( z: n V: S+ Z {
- (if (and (= int intchk)
8 V- ~0 B0 [. y3 D* B9 Z4 @ - (>= int 0)
( ?, X# S1 j% w# ] - (< int 201)
( t$ b$ M4 b; I4 \! q. t - )
2 F6 d) ]" N, ~: {6 M6 h, k! K6 s# @ - (setq valid T)1 p+ X0 ^9 R3 |- U0 D) n
- (setq errmsg "Value must be an integer between 0 and 200.")# {, B5 {* Y- S1 S7 ~
- )
) O4 G3 }* o5 S+ w d - )
) }% Y+ k% i* I$ T9 K* ~/ B3 Y - )
/ [4 R- d2 M. c' Y, F& C) X, ^ - )
1 y. R% }; N* ^! n2 j - (if valid
' y5 n( }! f. P3 v1 l3 i! K; x - (progn, F1 f- L% ?. h" @$ Y* c% e
- (if (or (= errchk 0) (= tile last-tile))
; J+ M3 \( F# I( X( @) Y: m - (set_tile "error" "")# j+ \* ~( \& d" U% W( D& m! b
- )9 {- u8 \& K2 X/ h6 N5 M- o. w5 z
- (set_tile tile (itoa int))! D+ M" e; ~5 v7 S' k4 w- W
- (setq errchk 0)/ K7 ~+ H; X# W' c$ ?) H+ ^
- (setq last-tile tile)) J6 q. R% L9 \" o1 }
- int3 @+ H2 N I/ Y' r: u
- )
, K2 Z1 r9 G% G8 k2 x; S! Y - (progn$ X6 V$ C+ j2 ?7 \8 K
- (mode_tile tile 2) ; Move focus to offending field" o5 q( _* Z. C
- (mode_tile tile 3) ; Select offending text
% |0 V% Z8 B. M! f5 a - (set_tile "error" errmsg)( q6 w& A) w \0 i- B! D
- (setq errchk 1); Y. [ `' J- j2 g9 Y" H
- (setq last-tile tile), f3 R9 c9 d8 T* Q6 h4 G
- old-value" ]3 `2 f- H9 H1 u4 b1 s
- ) l! v- ]; f* j
- )* C- n5 O6 Y c! I. Y/ u
- )& X" F' E9 B* t. z) p
- ;;
! {7 S8 }1 ]* N* ]' b7 d4 n& w- o! a - ;; Functions that verify tile values for integers+ E5 V& ?! ]3 t8 J" p
- ;;# ^4 h- `+ m4 U) s7 g0 a
- (defun ver_col (value); C& R# U$ t7 k6 K
- (setq columns (verify_i "columns" value columns))
( W7 k z: E! A" U0 { - ) k; M1 X2 F3 ]. A& Q
- (defun ver_row (value)4 g9 w/ f/ m" @1 |
- (setq rows (verify_i "rows" value rows))
# |" T7 l; t7 d! P4 \, x - )
' a# Q$ u+ S; h \( r g& P$ f - (defun ver_u (value)8 E0 e( {7 O+ e& V" Y0 f) ~0 l: I
- (setq u (verify_i "u" value u))
, m% I. r3 O2 {( E - )
; k6 W. D! z0 ^5 ^2 H' v( _ - (defun ver_v (value)$ b/ V* l& `4 M5 I# B6 k4 J, T
- (setq v (verify_i "v" value v))3 p, b8 v( S4 w4 w1 I7 t( y: q
- )
3 L; \8 z5 c8 ~6 y1 ~ - ;;
- D0 {4 r5 v. p* S( N* O1 P* B - ;; Functions that verify tile values for reals
9 G, A6 u7 M' s: J ^( i8 E# e - ;;
/ b& o( Z. s8 g1 y1 f' g i2 N# n - (defun ver_x1 (value)3 i8 \; N h. Q& q1 ^6 Q! y/ ]
- (if (setq x1 (verify_d "x1_pt" value x1)) (calc)). o2 n, x) [7 f3 p G) C# t0 J
- )
) l, z) A+ r' y9 p: j - (defun ver_y1 (value). Q2 Q" g: L3 F- Z2 G e. S1 a. y8 F
- (if (setq y1 (verify_d "y1_pt" value y1)) (calc))
* f' p0 @- B/ J4 T. c! R - )
# H! U/ s; d' Q) ^ - (defun ver_z1 (value). Z7 S+ [9 K8 s' u5 H" S& {) I# V
- (if (setq z1 (verify_d "z1_pt" value z1)) (calc))% w, B% S. s0 h7 w e9 M
- )+ O8 s: l- {( L( \9 f; m9 s
- (defun ver_x2 (value)
/ {4 X& |8 ]; M7 ^* s+ M8 Z# U* G+ \ - (if (setq x2 (verify_d "x2_pt" value x2)) (calc))
4 w: K+ ^/ d$ o6 H6 p7 A - )" J1 p. [- u2 y& s# @
- (defun ver_y2 (value)
! y, q: e7 H' j: E. Y3 _ - (if (setq y2 (verify_d "y2_pt" value y2)) (calc))
8 ^* e7 \7 p+ x$ a X - )
) h \. W+ z. j |9 W! H - (defun ver_z2 (value)) P6 r3 X; K9 L: |* E! r3 k
- (if (setq z2 (verify_d "z2_pt" value z2)) (calc))" u) k/ k# o% s8 l" e$ B! u
- )- f. j$ b; ]. h
- (defun ver_x3 (value)" Y# Z4 K0 x! U% }; ~% a
- (setq x3 (verify_d "x3_pt" value x3))) U O7 s4 D0 S
- )" W& Q' s8 }" S! h. g
- (defun ver_y3 (value)
' k3 G/ z o( ` - (setq y3 (verify_d "y3_pt" value y3))8 {" e, Y# X& b& P
- )% f* p7 r) C' S9 z. d
- (defun ver_z3 (value)
# Q& j& _+ [1 \/ s2 R4 v - (setq z3 (verify_d "z3_pt" value z3))1 G7 v+ l5 v9 g7 _% a1 ^
- )
$ a6 J8 {+ L: t6 b - (defun ver_x4 (value)
0 k1 \/ S) R4 g+ ^& F/ _: c$ | - (setq x4 (verify_d "x4_pt" value x4))
* z" l! o& i f6 m5 d1 B# T. y - )7 h* I# i" ~. e0 e5 o
- (defun ver_y4 (value)
. ?+ ?2 n* e- ]0 l5 d - (setq y4 (verify_d "y4_pt" value y4))( u& l+ r. F- d+ k7 u! B& H' q
- )
' |6 s* I; E$ c6 ^ - (defun ver_4 (value)
0 X0 J0 a( G- W0 y/ _ - (setq z4 (verify_d "z4_pt" value z4))# r1 [; k6 ^* a
- )% M7 H+ d8 A! k# b3 B
- (defun ver_xscl (value)
1 e+ _8 l# E9 r% X4 {, g! M/ p& ~ - (setq xscale (verify_d "xscale" value xscale))/ ^5 x+ s$ Z/ |' a2 P' ~% z
- )" s1 C9 d$ {4 ~ C6 ~
- (defun ver_yscl (value)
2 M8 y8 K4 h' K1 }% |( i - (setq yscale (verify_d "yscale" value yscale))
$ C. u* o2 y7 \5 O* `4 x( V4 F* m - )
, u! w; l$ _, w0 z6 }; A. p. b - (defun ver_zscl (value)7 V: P" q5 i6 N; h. t$ f' B
- (setq zscale (verify_d "zscale" value zscale)); {1 e# R6 ?/ D& r S8 l
- )
4 I0 g7 [0 K! w( I4 e7 K - (defun ver_colsp (value)
- N0 K4 r C; | - (setq col-sp (verify_d "col_sp" value col-sp))
/ M! w4 `; M# T4 t* m - )2 q9 J3 ]/ ~7 J
- (defun ver_rowsp (value)1 o9 b0 I% ~+ V8 u C
- (setq row-sp (verify_d "row_sp" value row-sp)): w* X2 Q" _% e
- )% I2 V) i' D% w2 A
- (defun xclip ()3 v3 ]1 ?% O8 G0 X* u# ?5 f( ^
- (setq xclipmode t)
6 d$ I# p. X3 r) A# C& ^$ | - (if (= xcliponoff "1")
9 c) u# L K b; f& N8 G - (command "_.xclip" (cdr(assoc -1 elist)) "" "_on")2 y! \5 e+ U7 N& T, K/ F; v5 v
- (command "_.xclip" (cdr(assoc -1 elist)) "" "_off") l4 {/ A; L' A1 j4 r* U( n; n
- )
, e3 @* }* S: W* o- t - )+ O- K4 ?1 R! N6 I
- (defun ver_rad (value)
) C0 @' ~- D. I1 w, }( y o - (if (setq radius (verify_d "radius" value radius))5 K( W* p" ~- P" _/ S7 _0 u2 u
- (calc)/ u- K# T( {4 w, B7 O/ G) v3 X
- )) J/ S$ ]# o0 O/ {8 t
- )1 l- r% ?4 [8 s) W; ?& |. q8 g
- (defun ver_majrad (value)/ \ p8 z1 a7 j- A
- (if (setq majrad (verify_d "majrad" value majrad))
+ i' I2 U2 m! V3 ^ - (ell_calc_newval "majrad")
) O- F4 J8 v( `) ~' X# \ - )
! d- T& M. v8 K" l$ G - )/ b6 }: i: g- T) D6 n
- (defun ver_minrad (value)
9 X3 m% h$ N& C4 M" ~! k% ^ - (if (setq minrad (verify_d "minrad" value minrad))
B! g8 O, x( r t - (ell_calc_newval "minrad")
0 t' @7 s. ?( K5 p% l$ g; V& t - )" m* ~2 z3 v, E8 b
- )' H9 h# Z7 f5 {5 |
- (defun ver_hght (value). r- N+ s( }7 n: U# L: B: i
- (setq hght (verify_d "hght" value hght))+ |; x) g# N. P4 x
- )1 `/ B8 f& {' B* O: E
- (defun ver_wid (value)
$ B& H m- B- M: A w* @- p! y" P - (setq wid (verify_d "wid" value wid))/ K# t A& u- U4 e4 l" b
- )) n. C- i% ?9 U) w
- (defun ver_xline_x1 (value / temp)
. u/ b$ @ W0 Y& s - (setq temp xline_x1)* l0 S8 U! _( m3 F+ l
- (setq xline_x1 (verify_xline "xline_x1" value xline_x1))
# L# `1 p) V$ v) K' x - (if (/= temp xline_x1)
' I3 T3 X: T3 y" h8 `! m- i - (progn (modify_xline 0) (set_tile_dirv) )
( E- ^6 T) I2 F1 }' K - )2 p/ ~; c) K! K V
- )
: L6 j( I% e) ]5 H, _ - (defun ver_xline_y1 (value / temp)0 r7 t) J1 C" j. H3 K/ ?3 C
- (setq temp xline_y1)
" \8 |/ n' ^& F" x( j/ W0 p5 } - (setq xline_y1 (verify_xline "xline_y1" value xline_y1))
6 p( g2 O* C% m) V( A: H" }% t8 V - (if (/= temp xline_y1)4 w; L$ d- D2 B. C5 L/ Z" y. k6 j
- (progn (modify_xline 0) (set_tile_dirv) )7 T. W& X1 Z" B' E% V. X- \
- )7 u1 ~1 J* a+ V$ r: o7 m* ` u
- )
8 S' D+ u) k0 m! h/ { - (defun ver_xline_z1 (value / temp)
; S, `7 z# N) h' f - (setq temp xline_z1)4 q1 J7 v; B* Z
- (setq xline_z1 (verify_xline "xline_z1" value xline_z1))( T2 m6 S% O# f' m3 Y) R6 J
- (if (/= temp xline_z1)
5 K% e+ X P! }" @) } - (progn (modify_xline 0) (set_tile_dirv) ) O! l* W% ~- k) V
- )
- ?1 `1 z1 ]4 h* X9 h6 o! z7 S/ t! ? - )
+ R& e; z8 i8 [! I i - (defun ver_xline_x2 (value / temp)
. _3 _! {, o" y) F8 _9 f, e - (setq temp xline_x2); |* }2 i0 ` }% {( f
- (setq xline_x2 (verify_xline "xline_x2" value xline_x2))
: m- ^& B) B& b0 q$ q3 y4 G0 p - (if (/= temp xline_x2). V$ A0 R3 _) ]9 g d: g7 p
- (progn (modify_xline 0) (set_tile_dirv))1 S1 \; ?) r# s/ S$ q/ z% m$ @
- )
" e" c' E% X% s - )$ X5 K. y c) h8 [! o. B) s2 {: S5 d) K
- (defun ver_xline_y2 (value / temp)
2 ~# K; C y' ] - (setq temp xline_y2)& }3 l$ x8 r6 c4 I# F+ l( V
- (setq xline_y2 (verify_xline "xline_y2" value xline_y2))
# y: i) p6 U h- v) c# {: B& J - (if (/= temp xline_y2): u3 D6 o( {, i" D% U
- (progn (modify_xline 0) (set_tile_dirv) )" h9 o7 \9 X, X. p* ~2 @) o
- )
" d6 E2 F' I8 h9 @ k - )
3 f, |! W( p1 a! h7 p. x3 x3 \1 v - (defun ver_xline_z2 (value / temp)3 o6 \0 u% p9 N9 m2 f0 c+ u
- (setq temp xline_z2)
, \9 D" A7 i* y: W9 j6 s. B* f - (setq xline_z2 (verify_xline "xline_z2" value xline_z2))
; s9 W! S% E) [+ i - (if (/= temp xline_z2)
' i8 u: Y; R+ F) C - (progn (modify_xline 0) (set_tile_dirv) ); L1 J; A1 P' @. w
- )
- L5 U C5 Q/ C ? - ) D C( [6 j& @. _
- ;; F a0 T9 `/ x( a2 v
- ;; Functions that verify tile values for angles
9 w9 h% _2 P" }* k' y; i# l - ;;
. o& Q( M7 B+ v& [( _ - (defun ver_ang1 (value)# r5 [/ }& |0 V# S" O0 k9 a
- (if (setq st_ang (verify_a "st_ang" value st_ang))$ w# ?8 |' f0 \% C' t. `6 n
- (calc)
; P8 q" Z, X+ p9 i - )
( C3 K6 B( R* k3 n9 C# p - )7 g9 ^2 \8 @' a& X
- (defun ver_ang2 (value)( J" n/ I) v2 b; Y" ?+ R9 ^! O! i
- (if (setq end_ang (verify_a "end_ang" value end_ang))
# d$ ?/ f9 U, c; S2 w* s9 U9 X - (calc)& \9 D' y/ @3 d K# J" [4 [- \
- )
, q: }' }* L7 L8 b% w4 ] - )# H6 L! G2 p2 n& D
- ;;9 C& X0 h2 f8 t% E
- ;; Verify tile value for ellipse end angle. Handled slightly
. y8 N2 v+ g8 {2 r - ;; differently than the other angles.
1 L# r- T" H% } - ;;
: z1 u! P# L' F0 \ - (defun ver_eang (value)/ }0 \% y, U+ g) b! A' U
- (setq end_eang (verify_ae "end_eang" value end_eang))
+ {! d/ H1 L0 u) F0 n5 W - )
& x. R) f1 E) M$ e% Z, }( @( O - (defun ver_rot (value)
: e, P$ J9 Z2 V' Q+ L8 S - (setq rot (verify_a "rot" value rot))3 d2 |1 |( I+ H! K0 k
- ); j' M+ N" ^' c: g) @8 x' K; B7 U
- (defun ver_obl (value)
4 S8 u0 F& v) w" v; E - (setq obl (verify_a "obl" value obl))3 K' V/ a( h( R, [$ \
- )
6 I) P3 r' \: N* m$ x# n0 p - ;;4 t2 V* j+ R2 D8 O6 w. ]
- ;; Function that verifies attribute tag field for null string,
4 p7 Y- h9 k: M1 G' J - ;; or a string that contains one or more spaces. Tile value
@- o {; u7 Z; }: ` - ;; is also converted to upper-case as well.
1 h! S/ b1 t* w" ?7 i, K - ;;
. H& H. x+ V5 \! x( W* k0 y - ;;
) [& T# V7 j, A0 z% ]8 o7 A- [$ _ - (defun ver_tag ( / tval)6 u8 e9 _2 n7 E: u" x+ O& F$ q6 z
- (setq tagval (get_tile "tag"))
) U ]) f9 u: b1 Y, t9 s - (set_tile "error" "")
2 }2 L. C& G! o4 Q - (cond) L3 L# b# X% p7 X9 W9 D
- ( (or (eq "" (setq tval (strcase (ai_strtrim tagval))))
9 W2 {$ G7 C: O; n8 V3 K! K! j - (wcmatch tval "* *"))
. x' q$ l% N& a* @" T3 Z2 y - (set_tile "error" "Invalid attribute tag.")/ O3 D6 {& Z, P7 w A' r6 [
- (mode_tile "tag" 2). L) S. n; R' q- M0 W
- (mode_tile "tag" 3))
, X4 K' R9 a" h6 D - (t (set_tile "error" "")
2 ]; `) E0 P( s2 h/ s" y5 K - (set_tile "tag" tval)2 L( m i$ i/ |
- (setq attag tval)))2 c' u5 O: J F; |) {$ m
- )
% _, Y3 B* ^8 j' M% ~5 r' F. { - ;;; P; r; V' \9 B2 n2 c- {' e
- ;; Calculation functions. |7 [/ P/ [5 w7 F/ z4 r8 T
- ;;! J1 {$ V( E d9 w- ^
- (defun calc ()
3 T# v# C& a" V; o - (if (= etype "LINE") (line_calc)), V* L9 t; c. ]! o: N9 |& l% J
- (if (= etype "ARC") (arc_calc))2 N( j3 E1 ]5 G6 N; \3 h* B
- (if (= etype "CIRCLE") (cir_calc))2 z8 O1 N$ _- L( r
- )
8 E8 P. o9 X2 [2 j - ;;7 Z# p S0 |9 D7 t
- ;; Calculation functions for lines, arcs, and circles4 j6 G5 \5 j5 B1 G% r( ~$ D
- ;;! U7 A" h$ t0 Q9 B& ^
- (defun line_calc ()" i0 [4 M1 g) H0 Z; M
- (setq stpt (list x1 y1 z1))
I3 X5 x" [/ E' u( z( } - (setq endpt (list x2 y2 z2))/ x3 w( ~+ S+ }' j6 A6 j2 L1 Q) Q
- (set_tile "delta_x" (rtos (- x2 x1)))
& M. _1 H0 D$ r - (set_tile "delta_y" (rtos (- y2 y1)))% t' }% W& D1 C4 O: F6 q$ H
- (set_tile "delta_z" (rtos (- z2 z1)))2 j9 Z# F7 R/ Z! q( y
- (set_tile "l_length" (rtos (distance stpt endpt)))
1 @7 Y4 Z# u0 u- k! y H# n1 z' w! } - (set_tile "l_angle" (angtos (angle stpt endpt)))2 {0 ^6 Z& ]# B
- )# w* f: m* A4 `* s3 I: ?8 A
- . ]4 l7 n- ]5 _. ^ ^( X
- (defun cir_calc ( / area units) j3 H y3 j d
- (setq radtest radius)% @! N9 Z4 ~& C; V+ l0 c
- (set_tile "Dia" (rtos (* 2 radius)))
0 @3 t2 q$ M! ^5 F - (set_tile "Circum" (rtos (* 2 pi radius)))% Q7 M# \+ w1 x) O/ p6 W1 ?. o
- (setq area (* pi (* radius radius)))
( ~$ B- @* _4 z3 H' c- @+ y - (setq units (getvar "LUNITS"))/ G# ^+ T `( b& j: E- Z3 o( O+ N
- (if (or (= units 3) (= units 4))6 N& B- P; e7 b8 U) s% X T* a
- (progn) ~0 n9 N# }+ C
- (setq area (/ area 144.0))2 r" H9 m. H* s; a; j
- (set_tile "Area" (strcat (rtos area 2) " square ft"))
: ]0 P; y8 H; E0 E# o - ) h \3 u9 @: }
- (set_tile "Area" (rtos area))
4 D& t g% [2 g5 v - )8 B( N# o9 e6 E& I$ [
- )) N: u x( {. A8 {1 n1 Q+ ?5 j
: ]5 z+ Z0 j6 m/ k- ?2 T$ C* f1 p- (defun arc_calc ()
7 o/ D3 \( c: \ - (setq totang (- end_ang st_ang))
" C( P/ p4 S7 V - (while (< totang 0)
e8 U& }! D6 v+ i - (setq totang (+ totang (* 2 pi)))$ a9 V1 D* u- D H
- )
0 ?6 ] w6 K& I( q5 c B - (while (> totang (* 2 pi))
0 i* L) v, ~: d' D" Y1 k6 \ - (setq totang (- totang (* 2 pi)))
' J7 K6 X* O% C& n: u- _- Z - )
( S( Z, m. y7 b) J8 R" U2 T - (set_tile "tot_angle" (angtos totang))
9 @7 S$ |+ L# j j$ L - (setq arclen (* (* 2 pi radius) (/ totang (* 2 pi))))
5 ?/ i9 S6 G8 x8 W- R - (set_tile "arclen" (rtos arclen))/ e+ w$ L5 y+ V- g
- )5 V+ p8 z1 e/ C$ k2 I! n) m
- ;;
, S) d" o- {3 I$ J& s8 K - ;; Calculate the major radius, minor radius, major axis direction.
0 {6 I, f) ~- G B }3 i - ;; Get radius ratio. Convert Start, end parameters to start and end
4 @2 h8 H. N# f* I/ C* l - ;; angles. Save Major Radius value in "old_majrad" in case the user
) z% o1 ]; Y( J. s8 l - ;; chooses to input a new Major Radius value later. It's needed to8 ~ z U( j! W( c; N
- ;; calculate a new Major Axis Vector value.
" ^% a. ^* `- i6 S; V* S- k - ;;
* H) _( R6 l) O! c+ `7 d - (defun ell_calc ()
3 ^2 M8 ?) W/ P - ;; Get major radius from the major axis vector.9 ?$ {2 N) g# _3 E' N
- (setq majaxis (cdr (assoc 11 elist)))
( b# t( [5 ~; A" L' B% `0 J6 F! e - (setq xx (car majaxis)) @ T' T* w) K
- (setq yy (cadr majaxis)) z' L( i( V/ _9 f, T& X$ D6 E. Q' K
- (setq zz (caddr majaxis))
2 T" u/ }$ E5 C! {* N. R+ V( ^ - (setq majrad (sqrt (+ (* xx xx) (* yy yy) (* zz zz) )))
" w' F8 |8 r+ H. e c$ T7 v7 N - (set_tile "majrad" (ai_rtos majrad))
& U# A& W; c" r4 p# K - (setq old_majrad majrad) Y1 ~$ C' ^, \0 u: B
- ;; Get radius ratio
: l+ [: M1 s# O& y5 o' ^ - (setq rrat (cdr (assoc 40 elist)))$ x: r& Y r2 ?/ r
- (set_tile "rratio" (rtos rrat))
2 q9 {8 b* |0 \/ T# c - ;; Calculate minor radius5 f- j7 J# ?" O- _
- (setq minrad (* majrad rrat))5 p: u$ A) T% A6 q1 B" h! A
- (set_tile "minrad" (ai_rtos minrad))2 i2 F! \2 H& X& M* C/ w
- ;; display major axis vector
/ @* I2 U. d/ j8 b; | - (set_tile "Majraddirx" (rtos xx))
' C* z; e* @3 l, h3 p - (set_tile "Majraddiry" (rtos yy)), F d' D/ Z @
- (set_tile "Majraddirz" (rtos zz))& X+ l6 `5 {) S: Q* J
$ w; b) q2 b d# D& M4 g- ;; Convert start parm to start angle: y; R! A7 A( G+ L, a" B4 m! t
- (setq stparm (cdr (assoc 41 elist)))
- s1 a1 g# d+ ^4 Z - (setq vecx (cos stparm))
( B9 }% R \3 ?( t' f5 W" S' o/ i - (setq vecy (sin stparm))
3 M9 L- M5 Z5 |4 S8 ` F" b - (setq st_ang (atan (* rrat vecy) vecx))
6 ]8 q# B* g* u$ K1 A7 w& t - (setq tempst_ang (ai_angtos st_ang))$ Y9 Y9 a1 f4 _& s; K3 d$ @, U# s* [
- (set_tile "st_ang" tempst_ang)' s5 ]* v3 ~) F
- ;; Convert end parm to end angle. If end angle evaluates to 0
3 H- J/ z7 `1 h - ;; degrees then display it as 360 degrees.
1 l2 A; Z) f/ N$ T3 z0 [ - (setq endparm (cdr (assoc 42 elist)))
# | H" n5 y6 a! z - (setq evecx (cos endparm))7 d; p9 W: D1 e: m
- (setq evecy (sin endparm))2 ?5 T" W6 w8 l
- (setq end_eang (atan (* rrat evecy) evecx))
2 V: b0 h6 {( X - (setq tempend_eang (ai_angtos end_eang))& j7 z: s) F0 z+ u* A( ~ H
- (if (= tempend_eang "0")- k' ^! i- S* H+ n# Y- o
- (set_tile "end_eang" "360")* V |: a5 [4 g1 D$ k
- (set_tile "end_eang" tempend_eang)% P9 f+ n' i; N" O
- )
/ m0 j5 a6 k; R) v - ;; Get area of the ellipse." | y( l- E. q% ?
- (ell_calc_area)
" x' H, _2 r, Q$ T5 a4 ] - )
' ^* u/ q- x4 A. k h ^" S/ X; R - ;; Calculate area of ellipse. If it is an arc then
: ? W9 L- i6 d o, t - ;; grey out area display.: K- Q0 q- }" _4 x% k7 m! q( o
- ;;
* {% l7 `3 I" {7 h5 s. h h - (defun ell_calc_area ( / area units)9 C' x o6 b- s3 q
- (if (and (= tempst_ang "0") (= tempend_eang "0"))
- J2 b; d' E* s. k; J% u) o - (progn" Y1 D) k% l5 O6 _
- (setq area (* pi majrad minrad)); w/ O8 E. @" L) w. `' _6 s! u
- (setq units (getvar "LUNITS"))/ K7 {+ {0 W. _) G+ Q! @: G+ e2 {
- (if (or (= units 3) (= units 4)) B% d1 Z g! }3 M" S3 ]" Z' L
- (progn& v8 g; D9 L# [9 C: R, {+ k2 J
- (setq area (/ area 144.0))
* a4 r7 w( i0 V: ~; @ H - (set_tile "Area" (strcat (rtos area 2)" square ft"))
3 V, d( d ?& J0 n0 c9 A' t" b - )
1 ?9 ^: b1 c* A0 Z( l, t+ P - (set_tile "Area" (rtos area))* q) g; f) ^$ R" P
- )
7 d4 I: X& k5 g, c; m% V+ c! H - )) n! X* s# A- x' v
- (mode_tile "Area_text" 1)
6 X/ p( \/ U% b - )8 r" n. g* S' P+ F9 _
- )
- A: @' o3 s; ] i' \% l& F - ;;
* A5 |3 m! n- w - ;; Calculate new values for ELLIPSE
7 E! {2 ^- y. D - ;; Minor Radius, Area
- ?: u7 U$ U# O |7 l; x# E" p" l* F - ;;
) u( b( u. T* C! g3 n2 C- O - (defun ell_calc_newval (ell_tile)
u$ m n4 k% { - (if (= ell_tile "majrad")+ i7 x1 C9 c8 e4 V
- (progn& b6 V7 u1 ?; [5 D. q
- (setq rrat (/ minrad majrad))
; ^- B4 b. V3 @5 @4 ~$ v+ b - (set_tile "rratio" (rtos rrat))
* k1 g: O: I5 @8 E9 [ - (ell_calc_area)' m. | A, C# E& c T* }
- )
' h! f0 {9 |( _ @3 ]$ X - )
' V+ F0 k8 _# H) X$ _" y* q - (if (= ell_tile "minrad")0 b( G4 T# S, U
- (progn$ b5 e7 R( R( ?+ `0 w( c; `& E) i
- (setq rrat (/ minrad majrad))' `' c5 Q; P- v3 A: L
- (set_tile "rratio" (rtos rrat))
! y" G: J4 d2 T( o+ K( f+ c; ]3 o - (ell_calc_area)7 x4 A( f8 c' M! T
- )! f/ R8 ]7 c; Z) H1 M* C3 ~
- ); }" b3 I' S; c4 v" H
- )8 A4 g) Y& G5 \* C. f' @, n
- # b2 F6 X. [9 o2 h# I+ _1 q
- (defun set_dimen_props (/ loop a stl txstyname)) R1 C% o, ?8 @" W9 N" k4 I# }/ `
- . V3 C) t1 M' b, j7 P; L7 i
- (setq stname (cdr (assoc 3 elist)) ; get style name
4 z. X$ m+ k X9 q. ?& K - stl (tblnext "DIMSTYLE" T)6 o, J) `. H1 w# h
- stlist nil)& B3 }. ~; T0 S4 O/ ~6 `7 j
- ;; Get all style names and list them in alphabetical order
" O0 H' a* b+ E9 A& G$ ^6 g - (while stl
$ M8 x: |0 H5 z) y8 e7 f! }9 {; y4 t - (setq sname (cdr (assoc 2 stl)))
; O) h9 n. i# E( {. E - (if (/= (logand 16 (cdr (assoc 70 stl))) 16)
, S, P9 N; A! _( f6 m: z* h - (setq stlist (cons sname stlist))) ~! q# y3 m7 B) ]2 _
- (setq stl (tblnext "DIMSTYLE")))
% L; o) ]6 S( \ b r( X# ?: @ - " {% p! T( V) n
- (setq len (length stlist)) k, T7 R) X5 m" U% R* @; d4 O
- loop 0
9 ~! O9 ~7 `& r. l+ E9 p - dimsty stname( e1 W' |8 Y: ^1 {; K) C: J
- )
8 A ]' Z/ v% N. |# W4 Q2 B/ G
% e" m+ t6 c6 T- ;; alphabetize style list, depending on maxsort6 M$ Z! a* z: o' m! f
- (if (>= (getvar "maxsort") len)+ P' c$ q* m) E8 g2 ?( \0 O
- (setq stlist (acad_strlsort stlist))
! Q0 V8 q- A4 S& J$ @- g% { - (setq stlist (reverse stlist)))% o6 k1 R! k. ^' q0 d f
2 r. h3 ~4 G- L- ; *UNNAMED style (dimsty = nil at this point) is replaced with
2 ^9 n* l7 E, v/ }) c$ X" }7 E - ; the current style. After R13, we require dimensiosn to have a1 A2 N; K7 H2 ^9 ]; G2 G
- ; dimstyle, so we plug any holes where we find them.
, ?! @, @/ f9 s; b6 Z8 W( ]/ C+ K - (if (null dimsty)) j( {6 z7 A' s" [5 r( |
- (setq dimsty (getvar "dimstyle"))# S v' I n/ ~$ F' _
- )8 ]# X: x- z1 x% L& ]5 r" [
- ; Show the styles in combo box
# ^1 y/ S6 W+ k - (start_list "mod_style" 2)
N& c6 H8 g$ I( A8 J9 s$ ` - (while (< loop len)
& e' e8 i4 z; l1 {" [ - (add_list (nth loop stlist))
2 h3 F8 d' w; b% o" S - (setq loop (1+ loop))
0 W, S2 ?7 E/ x+ n - )
3 i& U9 x& b5 ?! v7 n0 O - , U- Z5 `8 @1 I
- (end_list)& k: K% ?0 |+ g7 z+ ~
- 1 @ k" C' w" X9 b; e/ E
- ; Hilight the style name of the selected entity
, W& b4 W% \( r! O$ l/ ` - (while (and (< 0 loop) (/= dimsty (nth loop stlist)))9 S5 Q0 i6 \; b' p0 x' G0 j
- (setq loop (1- loop))
/ n% o- }. r4 l - )
4 T8 p% `) N) _! c! ]1 m- W6 T - (set_tile "mod_style" (itoa loop)): w8 }, N j& Z5 j e. k0 J
- ' a [3 j& ~- N; `
- ; The following is the list dimvars. It must be sorted in the same
0 f5 h& b6 L* w3 y4 x& x2 L - ; order as the resfub returned from DDIM (ADS module).
) s y- R% N# k& ` - 5 m7 ]9 ]( Z4 X; f3 T7 N2 N- G$ D* ~. U
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values": L8 k+ j5 s$ v) O! J( z
- "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"7 A# M% _; l" S* R
- "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"3 Z A7 l9 z8 \# Y
- "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
+ ^4 f: v& S. K6 J( ` - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"
l V1 Z0 n, v0 c) _ - "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
* O. S& O5 u2 v" V( u+ F: z - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"9 Q6 w0 Q, z6 i6 i. ^" ]- G
- "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
0 K& D3 a% \+ w5 d4 y0 k8 E0 r P - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"5 `8 b$ X$ {( j$ i3 c
- "dimdec" "dimtdec" "dimaltu" "dimalttd"0 j* @, M! n% O8 n5 d
- "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj"6 x# _+ k( i6 {
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"1 d ~4 ~5 ^3 w
- "dimtxsty"
; x2 B) E- i; `8 V5 m+ o/ n9 V+ v - )); \0 |* U0 K% b. |; o
- (progn) c. b5 N5 |, G/ G0 F( N; ^
- (setq sv_dvlist (ddimen_getostate dimsty)
! C$ z8 N. }5 w3 M9 l: U- e* } - txstyname (assoc 340 sv_dvlist)
3 _- v# Y/ R9 s. A0 k. k9 _ - sv_dvlist (subst (cons 340 (tblobjname "STYLE" (cdr txstyname)))
' W# f0 S& |. G% r# [4 u! b+ c - txstyname sv_dvlist)
T/ }- c& o& P$ y' l - dimlist sv_dvlist
6 |; T1 |# s, Z* J - )( S) ~; _" A+ P8 Z+ T" e
- )2 s/ x# _* _* |" C7 W- v$ [3 I
- (if (= dimtype "DDLEADER")& n0 Z- m8 B8 @2 H! O$ a
- (mode_tile "mod_format" 1)
/ A( G% b! ?. V+ s# o9 H; @1 n - )9 g$ D# T" V3 [8 X% P
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")6 \. E" G# n/ r6 J+ p
- (action_tile "mod_text" "(done_dialog 4)"), _( z" K2 |, L- X0 C
- (action_tile "mod_geom" "(setq dimlist (ddimen_dlg dimtype 11 dimsty dimlist))")
2 u* B. a8 ?8 _# D B3 { - (action_tile "mod_format" "(setq dimlist (ddimen_dlg dimtype 12 dimsty dimlist))")0 a5 }: E1 U8 s+ K, P" Y
- (action_tile "mod_annot" "(setq dimlist (ddimen_dlg dimtype 13 dimsty dimlist))"). M- T$ j, K X
- (action_tile "accept" "(done_dialog 1)")
5 ?! x% V* Q" S. h, L - )1 X0 W5 K5 c0 e F5 j
- ;;
0 w" y& G: ]" s8 m w - ;; Get dimvars that have been restored.! U' _; V0 D. h# [8 G: E
- ;;
- i0 |7 E% ` z4 l" ]6 s - (defun ddimen_getvars (/ elm dvlist dv i)
5 a! \& K v2 y3 G+ J4 s3 p - (setq i 3& A1 {% c( [3 S# T9 s/ a7 P
- dvlist (list (cons 0 "DIMSTYLE")+ v1 i0 k. x+ S; T9 x' n- e
- (cons 2 (getvar "dimstyle")) (cons 70 0))
5 s4 x# @# C, {+ U; H$ r3 T9 I$ b* N+ @ - )% ?7 B' ], c a5 |: v
- (while (setq dv (nth i dimtbl))7 {! U5 I- \/ D7 Y9 k
- (setq elm (getvar dv)- ^6 C. N7 z# d. i/ U# p
- dvlist (append dvlist (list (cons dv elm)))
, w# p b) W9 Y B4 E6 t* \+ W' E - i (1+ i)
, A X! o9 O/ n: D5 g. Y7 a% M - )
( F5 M1 [' C% X5 M6 f3 M$ L - )
% ]" L C0 t3 `* V' X - dvlist
2 Y& V+ R& }1 u$ @ - ). ~* e& q. k; s6 e
: N0 h0 e2 ?6 o5 j/ R2 i) R8 Z- ;;8 F9 v: V) K% f( ]1 |- S
- ;; Get the original states of dimvars. This is for DIMENSION entities./ L5 }$ B, H7 b: U0 F; h; @
- ;;1 N) o* [9 {8 y. `! ?$ x
- (defun ddimen_getostate (dimsty / dvlist elm i dvvars)8 o* P. m; t9 Y5 n6 N: P! q
- (setq dvlist (tblnext "dimstyle" T) ; Get a skelton list4 @! O, g% a6 b8 Z) d
- dvvars (ddimen_getvars) ; Get dimvars for that entity: X' d* @! a, f) B
- i 11 x' }8 R& E% ?3 Q2 X: V" \
- )8 \/ D' L" z/ K! r( g
- - f/ o* T% |5 D3 Y& P1 b3 {3 u* P, y8 w2 S
- ; Create a list that contains values of the selected entity.3 w/ q6 o; y5 M$ z& B8 l$ r+ F( N% d
- ! G0 T6 `: e: w+ l
- (while (setq elm (nth i dvlist))6 G4 V$ D! I7 {1 y
- (setq dvlist (subst (cons (car elm) (cdr (nth i dvvars))) elm dvlist)
% t2 R. B7 [5 q* r - i (1+ i)
1 Q* y; T4 Z2 z4 D! x0 L$ Z - )
- F4 K& Q) u/ H - )* ~$ }. w8 U* W! Q" q4 T, L, L
- dvlist
7 L/ x# o; k% a" n/ b$ r5 H6 a. } - )( v0 a% z& {. X8 a
3 k& @" e, U2 u, P- ;;
3 F. b; ^% l7 j. ?" f - ;; Restores dimvars of the selected enity.* f1 I* z7 D' ]1 [+ f
- ;;$ i6 P+ n5 M1 S. L2 h K( ]
- (defun ddimen_dimsty_restore(/ dimtbl dimsvcurset en)& g7 F/ Z" U' J8 w! a1 @) W
- (setq dimtbl (list "DIMSTYLE" "Style name" "Standard flag values"
5 N b7 A: R' }# p - "dimpost" "dimapost" "dimblk" "dimblk1" "dimblk2"
$ K2 c1 T6 i7 u, J5 s- u - "dimscale" "dimasz" "dimexo" "dimdli" "dimexe"
: A+ I* c3 X, `) ~ - "dimrnd" "dimdle" "dimtp" "dimtm" "dimtxt"
0 W6 e$ Y/ t7 K6 f7 n, s - "dimcen" "dimtsz" "dimaltf" "dimlfac" "dimtvp"% l4 M5 e1 |, l8 W5 ~' l
- "dimtfac" "dimgap" "dimtol" "dimlim" "dimtih"
( l _2 @5 C' R3 f/ x# d - "dimtoh" "dimse1" "dimse2" "dimtad" "dimzin"
4 Q, c4 a9 I# |$ I( J - "dimalt" "dimaltd" "dimtofl" "dimsah" "dimtix"
9 b) a7 R. |' E4 Q" v' | - "dimsoxd" "dimclrd" "dimclre" "dimclrt" "dimunit"4 ?: J2 E7 s8 u; v% i8 V8 K; H
- "dimdec" "dimtdec" "dimaltu" "dimalttd"
8 J2 b" s y: q1 c7 C - "dimaunit" "dimjust" "dimsd1" "dimsd2" "dimtolj": O6 a0 A: {7 w5 G! t
- "dimtzin" "dimaltz" "dimalttz" "dimfit" "dimupt"/ U1 W W! g3 |6 w5 Z, T' |
- "dimtxsty"
; o! G% d8 y! C3 f. n - ))
! G8 a6 x5 ^& N! K - (setq dimsvcurset (ddimen_getvars)) ; Save current variable settings
: V/ E. I g: d. \4 a& o: P - (progn
1 ?" q$ e/ h% q* y, r9 t: { - (setq en (cdr (assoc -1 elist)))% @2 M9 I0 p5 P* s
- (command "_.dimstyle" "" "" en): s6 l! y/ Q, {+ [ K2 o C
- )+ f; Y, {/ b u8 j; C
- dimsvcurset
- E" l6 f8 e# Y# l2 c, g/ p& H - )
: D' n D+ Q& F6 Z. L- c R - ;;
; h# |3 ^3 J+ F - ;; Modify Leader
+ F/ p; n4 O' z" o3 g1 q% H* f - ;;
$ ^9 l3 Q* z: O - (defun ddleader (/ dtypebit blkname bename sublist a stname n dimtbl0 s4 w' H9 [3 y& `- C
- dimsty dimlist dimtext svtext dimovr sv_dvlist stlist, P. F! H8 g% R1 N+ y( z
- dimtype dimsvcurset)
( n# R t+ z6 b5 Q2 }. ] - (setq dimtype "DDLEADER"
' G4 Q& T% T) f- m8 \+ q - dimsvcurset (ddimen_dimsty_restore)/ h1 V! L2 S- d. x1 v
- ), r; F" v4 Z. z' K+ Z
- (if (not (new_dialog "ddleader" dcl_id)) (exit))( b. K: X8 A) n. e8 _) _. L! o% N
- ;; Set initial tile values" F+ R. b8 l6 U a: {5 z1 j7 _- _9 O ~
- (set_tile_props)6 X& B: b0 I% L. n$ l' V2 T! e
- (set_dimen_props)* T5 l# w8 K; `" ^/ F! m$ G5 }
- (set_tile_handle)
6 S) H9 j% W6 m" }3 {! @; X+ O - ;; Define action for tiles
2 g- Y$ q( U8 R& `9 M - (set_action_tiles)
7 R9 P5 U, U# @- V. G7 C8 ~ - (mode_tile "mod_text" 1)
& i( Z- I' W$ {: ?0 f - ! F; p V$ @* o* x* h% Y
- (action_tile "mod_style" "(setq dimsty (ddimen_style))")
, ~6 ?- R/ R& k& ^1 q5 ^ - (action_tile "accept" "(setq leadtype (get_tile \"s-s\"))(setq arrow (get_tile \"arrow\"))(done_dialog 1)")/ S$ u0 n# P2 }4 C
- ;; Get ARROW and TYPE.
/ j6 S/ O- a* q. U- \8 B - (if (= 1 (logand (cdr (assoc '71 elist)))) (set_tile "arrow" "1"))( N3 F Z4 z% u0 k0 Z% \8 x7 B( j
- (if (= 1 (logand (cdr (assoc '72 elist))))
" F. v& k8 `* v4 l& C) N - (set_tile "s-s" "spline")1 x( i( c8 J( ^
- (set_tile "s-s" "straight")" P- _) Z) N3 I) I9 C1 m' G( W
- )' i0 Y/ R0 B, J& f, d
- ;; Start the dialogue.
x/ D4 Z/ Y6 a9 D& {: c: X8 d1 K! n# Q. i - (setq dialog-state (start_dialog)): i" i4 R/ ~9 u/ r
- (if (= dialog-state 1)
( ~) a* L: W) N7 E# H- t8 T - (progn
) Z' }: f& w' y' Q/ L3 ] - ;; update the style! W1 G: y4 P. `( { a( ]
- (if (/= dimsty stname)$ J6 P/ Y% I, w* D7 R! X9 z# X
- (progn
$ I. Y- z9 \# Q# H6 N _/ { - ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case0 F9 L6 J7 } z/ k& U C! \. f
- ; doesn't have it.: K/ U5 ?. w/ T5 b0 V( l
- (if (null (assoc 3 elist))
+ M _. Q" g6 g% z2 z) J - (setq elist (append elist (list (cons 3 dimsty))))
, [3 A W$ y t& Q - ; else just replace it.* v% j! Y ?* u2 U6 K) N& a
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))- L4 K) e& k ^& c2 Z2 r {' I* p
- )
$ ?1 C( y) W8 H. l; G* f5 s* ~ - ; refresh sv_dvlist with new dimstyle.$ l3 {1 ~- |( s _2 ~2 w* x
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
$ A% k$ `+ S) x5 D/ f - )5 N: T/ Y0 L9 C2 l( U' o
- )$ y- w: o) u: o' M% ]
- (if (not (null dimlist)) ; attempted to change dimvars
* [+ l* k2 J* Y. j# U# c/ K - (ddimen_complist sv_dvlist dimlist dimtbl)
: V& \! ^( U# D1 `7 b - )
" M+ k) t- h! J! Q9 F' {3 m - ;; update for ARROW.5 o: g9 a: w) I x# x9 a& b5 d, _2 s
- (if (= "1" arrow): L' n7 k0 @% X3 B3 I
- (setq elist (subst (cons 71 (logior 1 (cdr (assoc 71 elist)))) (assoc 71 elist) elist))+ J/ c ]1 G6 T7 w) N
- (setq elist (subst (cons 71 (logand (~ 1) (cdr (assoc 71 elist)))) (assoc 71 elist) elist)). Z) S, t$ q. v& j1 k
- )1 l8 n! N- W& l- I
- ;; update the TYPE.
' d' {& g8 z, r0 @9 |* @ - (if (= "spline" leadtype)2 M5 r6 q2 }/ J {, w2 |0 I
- (setq elist (subst (cons 72 (logior 1 (cdr (assoc 72 elist)))) (assoc 72 elist) elist))0 ?3 ]5 t* V+ F( O9 [, D7 ?
- (setq elist (subst (cons 72 (logand (~ 1) (cdr (assoc 72 elist)))) (assoc 72 elist) elist))( @0 u' g2 o- ~, B
- )& [; Q% W4 I' _6 v0 f
- (modify_prop_geom)3 a" i/ R3 L, Z* O, L: b7 H
- ;; update the Color3 w" I D% ]$ s+ M
- (setq elist (subst (cons 77 ecolor) (assoc 77 elist) elist))( c& u( K9 O+ f) T, q# r+ [. C
- (entmod elist)
' I9 n- G7 \& x8 u. X& T - )
7 @: H! ?. A5 O - )% [; S1 \) x! J" ^7 O5 s: ]/ N
- (ddimen_setvars dimsvcurset) ; Prepare to exit( F; R1 e% ^6 a- V' r
- )' K- x w1 I% L& T5 _& u- t! U
- ' e. A6 i7 z8 [; d7 Y \
- ;;
6 [2 [4 q* ?+ g. B5 j' ? - ;; Get dimvars of a dimstyle with overrides.* L5 f3 g# ]: V7 |; G
- ;;
. y$ Z- a6 d4 s* F0 \ - & }) P1 j" _5 v
- (defun ddimen_getdimvars (dimsty / dimovr dvlist elm i)& d8 _* ~, t' Y9 F6 b5 B" F K
- ! J9 d; T; s' j. z: i, D
- ;; Get override information for the specified entity.
. a2 S/ I8 z4 n+ @& Y8 B - ;; Leader/Tolerance cannot be restored by DIMSTYLE command, so we
5 c" ?! Y' a! n+ q, w7 C- d - ;; must obtain override information through this tedious operation., {1 V" I6 a7 k+ s2 r
- (setq dimovr (car (cdr (assoc -3 (entget (cdr (assoc -1 elist)) (list "*")))))
8 b) \& L) v( m/ |2 v - dvlist (tblsearch "dimstyle" dimsty)
3 r3 D, f" b7 {& g! U - i 2 R! C' `, h3 y3 [% `2 W4 A
- )5 \! Y1 ~+ S; g. X9 g6 r% ~6 p
4 t B: i) E4 n4 F. s' B- ; Update the list with overrides if overrides exist.
' H5 c w# `& H3 I
4 o8 w+ _0 A9 Y. k5 e4 }- (if (and dimovr (= "DSTYLE" (cdr (nth 1 dimovr))))" {; O# |' z+ W* w* j/ v. c
- (progn
- n& I. [" _ I! ~0 { - (while (setq elm (cdr (nth i dimovr)))
* y: V1 P# ]: y/ y3 q8 J - (progn
4 L0 O% r" m- p' {1 l% c - (if (or (= elm "{") (= elm "}"))( h0 ]7 v) w- q9 T/ F+ a4 P
- (setq i (1+ i))
4 a$ k& P: b) Z; X7 r - (progn
: M% k4 E9 m; Y3 S/ |1 l - (if (or (and (< 180 elm)! r3 p3 V8 H; V2 L- @
- (< elm 190)
; r& i: }; |# p$ [6 t* _' N - )
# B9 `: o+ Q; w$ N; g. m' m$ |9 D& Y - (and (< 80 elm)" t+ Z, P. G9 ]/ f8 q0 X
- (< elm 90)
, `# X: ?; B) U' T R9 K2 }0 N8 \% ]% } - )
5 ?# [' ~3 K+ X3 P9 o- X" c9 J; P - )
1 J9 a( S- i4 K - (setq elm (- elm 10))
3 a: m& ^* W- K: |9 O/ D( ` - )
, V& ^* x7 k5 H2 p @ - (setq i (1+ i)
& A% m+ H ~8 E8 f6 I1 |' s) c - elm (cons elm (cdr (nth i dimovr)))' I2 _: D5 D1 Z# [
- dvlist (subst elm (assoc (car elm) dvlist) dvlist)5 g1 M9 ^2 I. I4 G2 ]. d9 r
- i (1+ i)% _" |7 x6 v6 S, B" }) M+ t) E
- )
3 o* i* b! p' O - )
- ^$ {, r3 V8 L& t - )) }5 d) O( L2 c. R1 J/ }
- )( Y% C+ R% U& d/ r* j
- )$ }$ f/ J* \ w2 S9 P9 a
- )
6 X& J* I8 D# H: i. C D - )) b! f5 _+ ^2 ^. U
- dvlist
9 M m! ^) h. @" v) j& V$ | - )
; v: f' H5 P4 o0 Z% G
- g" I, i% C8 }' x5 S- V' S. L- ;;
# b! X, G( k* x' |7 g7 H9 u - ;; Modify POINT& q2 G$ R9 ?) e' w. i
- ;;
R) h0 n4 Q2 | - (defun modify_point ()
' w% U8 |+ b+ w/ g( q - (modify_properties)
2 r& Z8 b$ v# X; V+ T - (setq pt1 (list x1 y1 z1))
% Z- H* t7 h. m' f6 h* D% h9 S3 { - (tempmod pt1 10 0)
( [; I8 p: c9 K* e - (entmod elist); ~' Q- I: C# D) o; l3 S: k
- )
" A# Q Y8 Z/ Q* K; O* i8 B
/ H' l; j0 | A5 P( q! Z- (defun ddpoint ()5 d8 S3 {: Q8 y; ]9 P
- (if (not (new_dialog "ddpoint" dcl_id)) (exit))2 h1 C$ [0 e+ ^
- ;; Set initial tile values, K6 \0 i4 k# d/ |, |
- (set_tile_props)' u! E: Q: e( v; w( j
- (set_tile_handle)7 ~, U) x% n. j' Z
- (set_tile_pt1 0)
! O0 K" @/ \, F$ | - ;; Define action for tiles6 X- U& N0 V) K7 ]. f, l; f
- (set_action_tiles)
% d( @) ] e5 F r' Z3 P a - (setq dialog-state (start_dialog))
9 R, D: ?8 M2 y p - (if (= dialog-state 0)" A7 F* t+ v/ _- S6 _0 {
- (reset)8 f" o2 z; {& ?5 U) l: E
- )" L) H" u/ A9 y* Z
- (if (= dialog-state 3)
' F9 Q$ v9 u) L, V! W - (progn
3 {- C( u% W3 b( o& ]) m; }! L - (modify_point) P+ @5 k* A1 N1 X7 }
- (setq pt1 (getpoint (list x1 y1 z1) "\nPoint: ")); v' L6 |) N, d3 @! o2 z3 W) @
- (ver_pt1 0)6 [9 F$ [, ?# }- M* L5 d8 J
- (ddpoint)
- M: @7 R/ d3 N2 T3 {# C; k5 g8 T - )( [2 F% b* |- p; i6 W9 ^9 F5 t
- )
3 g2 p* \* a! u) e9 l k+ Z - (if (= dialog-state 1)
+ u# h" |1 ?, G, \ - (modify_point)/ i/ m: W0 D5 L2 q @' z7 r
- )
$ ^0 B, Y: Y6 V7 g - )
# B! A5 q0 P2 Z - ;;; o/ y4 U( G: f3 D Y9 A9 B. d0 {
- ;; Modify LINE
H: X- b' F, o. U+ s% ?3 q9 } - ;;# l ~4 Z2 q+ {+ v+ u7 d. o
- (defun modify_line ()# m3 t& F8 A/ G! N; t# I2 g
- (modify_properties)
. c! u5 a$ k& {. @& \ - (setq pt1 (list x1 y1 z1))
) V- @6 x- n; E# ~( c2 v/ R - (setq pt2 (list x2 y2 z2))* D' Z1 x+ K9 `* w9 V
- (tempmod pt1 10 0)
+ ]5 k e; p& u S# t4 P4 r9 i - (tempmod pt2 11 0)4 T4 X! x( Q) C; I. ?
- (entmod elist)$ E* B& n2 s" w* o: c$ [
- )' Y! g4 v# M7 ?3 o N) n
- (defun ddline ()
- ?0 c- a' e3 a9 l6 r0 @ - (if (not (new_dialog "ddline" dcl_id)) (exit))/ Y7 \ e, w1 x4 B3 L: k4 ?( E- s
- ;; Set initial tile values( l+ K) q7 a: g
- (set_tile_props)+ G+ ~, T* b: S; g+ C
- (set_tile_handle)
/ M6 I( v, o# r- H2 J0 h - (set_tile_pt1 0)
A1 F) y3 x6 c6 F1 \ - (set_tile_pt2 0)* v& b6 K, ], R
- (line_calc)( c* N( B! }+ {% z8 X4 u( n
- ;; Define action for tiles
/ V1 E2 C: @/ h5 S- w. v! p - (set_action_tiles)8 t& @7 V0 g% Y+ f/ h1 F
- (setq dialog-state (start_dialog)), C6 Y6 q- ?/ @+ k
- (if (= dialog-state 0)) C" Z! t4 y) W! `2 }" u2 u& ~( b
- (reset)$ U3 @5 D2 ?; T% ]4 [" o3 P
- ); D, D0 v( S% Y" n
- (if (= dialog-state 3)0 ?" a6 W4 k" u% v
- (progn/ D; A) @: `, [" ^3 S5 d+ k; ^
- (modify_line)
# f5 Z, y* d% m0 i7 P( n# | - (setq pt1 (getpoint (list x2 y2 z2) "\nFrom point: "))
8 e( o2 ?) D: {4 H! Y, w3 @% J; U - (ver_pt1 0)
/ ?8 h: n- m! ]! z. J* [ - (ddline)
$ j& u8 x$ M1 l$ T/ k% d3 p - )8 p' |: f/ p* r& A6 J
- )
9 l$ r, I) N8 U. ? - (if (= dialog-state 4)
& k; N. g' I; P* @ - (progn
9 e& u: A1 \1 _1 C# z; d - (modify_line)
6 }2 P" d& Z5 s0 K - (setq pt2 (getpoint (list x1 y1 z1) "\nTo point: "))
+ z8 v; ~* M' L) ?. ]$ Z ] - (ver_pt2 0)- F) `# G$ }. a
- (ddline)
8 o" ~+ V% R7 U) c0 A - )% }0 P% \! Q: e) r( \8 n1 A
- )
$ l' |+ L9 K7 i% R' B/ r - (if (= dialog-state 1)
# z' ^# q, [6 ? - (modify_line)
( b f+ K# w; e* I5 P - )) Y. h. w j7 \# k r' x
- ); @% o6 G' Q( u# X! d6 p1 k7 Y2 X7 R2 L
- ;;
+ ?# p: m6 Y2 j1 K5 c7 L6 M5 z. z - ;; Modify MLine
( j; g% C) C1 H" m - ;;' Q' l( Z3 r7 |9 A
- (defun modify_mline ()
" x& \3 e& E, P! R9 J6 G1 |, W$ H - (modify_properties)
2 u0 j" ^2 f( e: |, \# y4 M - (entmod elist)
/ n! I J) | b8 l - )4 T9 B1 z, _2 B; |
- (defun ddmline ()
' N0 r5 D: H" f& X - (if (not (new_dialog "ddmline" dcl_id)) (exit))* B+ \0 `+ }7 ^* S: D6 I
- ;; Set initial tile values; k1 z, s" b( ?1 W( E0 ]
- (set_tile_props)
" l( x) @% E$ T+ l& _- ?* D - (set_tile_handle)5 M( }& N1 ?7 s S; l, \+ Q
- ;; Set mline style text field.+ C) g7 `) Z) O% E9 N1 J% H
- (set_tile "ml_style" (cdr (assoc '2 elist)))/ ~# _4 i/ y2 M b. |4 F# s! u
9 \* ~) c; C& v- ;; Define action for tiles8 a! i" R+ k% D0 W& d- B% [, ~: ~% s
- (set_action_tiles) u+ L; z# m' E4 F8 T9 m$ p
- (action_tile "ml_edit" "(done_dialog 3)")
2 |, f: {5 `( g! {7 @# f - (setq dialog-state (start_dialog))
& c/ n+ t$ v) c9 Q& ?0 I+ { - ;; Dialog cancelled, reset to original values.
2 F8 j2 u$ G+ n w# M2 b7 F: v$ E$ p1 p - (if (= dialog-state 0)
( Q: v' _$ g% ^" g1 l+ G$ W - (reset)
1 e( N: v! U, K/ |4 t: V" X8 C - )
3 g. o/ ~2 R& _/ p' c! H - ;; Dialog OKed, update the mline.
2 Q! p2 ^* z9 y+ u - (if (= dialog-state 1)
7 P, ^+ k& ~0 E, O2 c - (modify_mline). K. _( u& g* F3 n2 n
- )
/ d9 J* }" M+ p/ G4 { - ;; Edit Mline, call MLEDIT.% i E% {. {- [! E0 |
- (if (= dialog-state 3)
; F- q8 t5 l6 _" F' h0 T7 K - (progn
5 H6 O) X1 X* t. e - (modify_mline)
& d h) t) T. K7 M& ]; q - (command "_mledit")
# G0 g, ^8 U, s: O" M7 t - (ddmline)$ c: T) V, r1 Y4 E& X. R
- )
# O% C" _: h, T' i P# B7 a - )
* ]% R2 r! l' E% F5 P - )
# @* Y7 V/ J" p- ~ - ;;3 k* H- Y& |% ~7 V u! U
- ;; Modify Xline( R, P2 W; e, t& g0 _& I& ^
- ;;
1 G4 Z- ^3 \$ o+ Q! N9 S% } - (defun modify_xline (flag)! a6 [6 o! k, m9 |1 n& ]2 {7 l) P
- (modify_prop_geom)' Z2 X' s/ E8 m4 Y- p/ x: \ w8 B9 v
- (setq xline_pt1 (list xline_x1 xline_y1 xline_z1))3 D2 I+ M5 K6 \$ O8 ^% K
- (setq xline_pt2 (list xline_x2 xline_y2 xline_z2)): X: j; x( \$ f6 W+ H4 h6 F- B/ U) p) F
- ;; Update the Root point.
! N' b- H, D; T0 I6 V5 { - (setq elist (subst (cons 10 (trans xline_pt1 1 0))/ ? y; h; p: U5 ?0 o: |
- (assoc 10 elist)
* J m% P1 W F' L - elist
4 s# }4 I' k3 j) F, C9 E - )* D- `* h7 J: i4 f+ K/ z
- )/ }8 m) @' y; Z) u7 Z' N4 W
- ;;
+ E1 v/ K# N& [& |# i, H: M' P - ;; Calculate new Direction Vector WCS
d E# W) T9 c" L - ;; x / (sqrt ( (x**2) + (y**2) + (z**2) ))
, v, Y/ \: s- V' Z. p. u - 0 s# X1 Q+ _/ C1 M% r+ r5 @* _
- (setq temp_dir (trans xline_pt2 1 0))/ [# Y/ n2 J' X& @( G0 Z# l7 @
- (setq temp_dir_x (car temp_dir))% b+ o1 Q- A# t
- (setq temp_dir_y (cadr temp_dir))# `$ R( s! j4 o% G3 o
- (setq temp_dir_z (caddr temp_dir))* `9 u* A2 L7 e( A* D
- " t$ G( j& H. R" `4 W4 Y
- (setq temp_xline_pt1 (trans xline_pt1 1 0))
+ E: O; A3 y9 ^) H. g. n - (setq temp_xline_x1 (car temp_xline_pt1))
4 ]5 k8 r' D: k0 q F3 h; ` - (setq temp_xline_y1 (cadr temp_xline_pt1))6 i0 |# b" r$ u6 S# C# }2 z* p! W
- (setq temp_xline_z1 (caddr temp_xline_pt1)). o9 U/ P8 m; J$ K" \' G
1 |- q2 U% a O+ Q6 U% X- (setq denom (sqrt (+ (expt (- temp_dir_x temp_xline_x1) 2)6 A5 Q# t8 M/ a& q
- (expt (- temp_dir_y temp_xline_y1) 2)1 q1 ~8 B5 T5 {" p2 Z+ L! w7 y
- (expt (- temp_dir_z temp_xline_z1) 2)0 b5 M" D6 @3 x/ B
- )))
& O8 G# Q' m, B- p - (setq temp_dir_x (/ (- temp_dir_x temp_xline_x1) denom))
& k/ K8 |; m' [% O& [ - (setq temp_dir_y (/ (- temp_dir_y temp_xline_y1) denom))
& o+ k0 p$ X: f8 n5 d: x2 o- X - (setq temp_dir_z (/ (- temp_dir_z temp_xline_z1) denom))
k c9 ?' m, X1 _ - (setq elist (subst (cons 11 (list temp_dir_x temp_dir_y temp_dir_z))
6 |# V% s/ V- Z( j - (assoc 11 elist)7 ]5 } Z' S; y
- elist/ A+ l+ y# i; y" Z
- )% M2 ~7 l j+ }
- )6 Q7 | B2 K$ z7 m. R$ j' i) a
- (if (= 1 flag)
$ C# X9 [% w9 n - (entmod elist)4 u [8 |5 f9 H a0 F. u& r8 A; h
- )3 f, M2 i3 p: r0 X" a& v
- )
& d, x* J# m7 W' ?3 {1 V - 0 N0 @/ Y; I+ e9 ?4 `
- (defun ddxline (): \5 X8 f7 ^- x) {
- (if (= etype "XLINE")
* \6 V) `7 P: u- n - (if (not (new_dialog "ddxline" dcl_id)) (exit))' O, o( M5 t& }: o
- (if (not (new_dialog "ddray" dcl_id)) (exit)) M5 |' }: \2 K; N
- )
4 J+ j8 k$ v4 O7 c4 e* N" } - ;; Set initial tile values) k, J4 u+ }+ k
- (set_tile_props)* Z7 M2 R' [% u0 g- G, X
- (set_tile_handle)1 [. e4 {3 T' D+ w! I. [/ I
- (set_tile_xline_pt1), u& e/ E+ D. T5 J7 q
- ;; Convert to UCS and post Direction vector.
' j) Y5 K4 H8 i/ x+ i5 E# P8 Y0 K - (set_tile_dirv)
; r4 w0 x4 O- [ u& j - ;; Calculate second point by adding Root Point + Direction Vector.
! N' p* T7 D- ^! d4 T5 l1 P1 }- } - (set_tile_xline_pt2)
& a% I* X2 i% q5 g0 k2 I1 W - ;; Define action for tiles
1 p5 S+ \7 I2 K( _( d# k- A4 u - (set_action_tiles)
( k M1 b8 \! E - (setq dialog-state (start_dialog))7 V' g4 R. O! S& {% k3 S. U
- (if (= dialog-state 0)7 f9 T) c7 q% s7 ~
- (reset)* F+ l9 C( Q7 j5 n' ?$ D4 u7 B3 O
- )/ a* Z5 }1 O3 M& Z7 n S: F6 F/ \
- (if (= dialog-state 3)9 _* R- i8 w2 V) ^7 {7 k- P! p
- (progn
, ^# T% o" d+ M - (modify_xline 1)3 a" v G& ?* P$ q+ g5 Q
- (while (equal xline_pt2
7 p; p7 x ?. b! X! b/ w9 j4 ] - (setq xline_pt1 (getpoint xline_pt2 "\nRoot point: ")) 0.000001)6 J9 N4 i1 x5 A5 E& ?
- (princ "The Root point cannot equal the Second point.")
# I& a$ ]1 d# n% h* e. n - )
, |6 P* ^) H0 V3 ?0 t - (ver_xline_pt1), E. c* q$ r, @2 g. H6 z9 l
- (ver_xline_pt2)$ ^7 h" L' h$ K+ V, J5 Z7 \7 J
- (princ)
7 |' x( o' ~) b - (ddxline), b* H3 S9 Q2 i1 A8 n, j
- )
5 e* }+ o, {0 U6 _ - )/ {$ A, O, |0 n! E1 o1 F+ {
- (if (= dialog-state 4)$ w4 ^0 `$ j: L5 x
- (progn' ]9 Y# L, P; f/ K) o
- (modify_xline 1)
+ @( A: _+ I9 c( j; |/ J' U - (while (equal xline_pt1
4 `4 f% c a# ]) R2 s& [( V - (setq xline_pt2 (getpoint xline_pt1 "\nSecond point: ")) 0.000001)6 o! v8 _$ r( a) C
- (princ "The Second point cannot equal the Root point.")
7 v( U/ g9 H- X8 G) K - )9 o$ X" _: A) l _( h
- (ver_xline_pt2)
0 w1 {6 Z3 V; m2 r3 T - (princ)
/ r( ?9 B* F `$ A - (ddxline): N( W. f X* T& g: U
- )
8 f, R: X- Q; U9 c7 q; n - )8 K3 W( ^0 G' ^; B' U
- (if (= dialog-state 1)
! \( @- G1 E& o1 A7 Q - (modify_xline 1): y8 N) r$ L* B8 }- g5 F- {4 A* |
- )7 x# ?* A: ~' X3 V. R. A- x# E" b# o
- )1 y% J9 @4 C; k- P8 V" z
- ;;
, n0 C& A. R% m/ v8 Y - ;; Modify ELLIPSE/ r5 R V- e6 W( N- T# H( s! R
- ;;/ k) C+ g# t V6 D
- (defun modify_ellipse ()
( r- P0 Z& V! R: r" D* u - (modify_prop_geom)
9 S6 f \7 v6 V2 ^ - ;; Update Ellipse Center Point value.
2 [; q7 g t6 Y+ t9 c4 m - (setq pt1 (list x1 y1 z1))
: W- X# \' e6 @& m4 A: `; [ - (tempmod pt1 10 1)
. H( n9 H$ V9 Q - ;; Update Start Parameter value.5 m' z; I+ x! A" Y; |2 j; k) {
- (setq y_val (sin st_ang))
L* |) L: J1 S# P" }9 R% n - (setq x_val (* rrat (cos st_ang)))
; C! b! I) d! J - (setq stparm (atan y_val x_val))
1 y. U5 Q/ d, f - (setq elist (subst (cons 41 stparm) (assoc 41 elist) elist ))
8 z6 t* |, T6 j. o0 D - ;; Update End Parameter value. Normalize it, if it's less than9 @: O. D$ y& d: y: `6 m" `- G
- ;; the start parameter.
1 ?7 h2 L+ l* C. F* `% k4 H5 B6 t - (setq y_eval (sin end_eang))
. f$ @& U; L- {- N - (setq x_eval (* rrat (cos end_eang)))1 E: W2 y& @# v
- (setq endparm (atan y_eval x_eval))
- p" U& r8 x k# ~& q - (setq diffparm (- endparm stparm))- O6 o) h" i( }6 o# f4 x
- ;; Epsilon of 1.0e-6 radians for checking a zero length arc.: X6 _6 [; ?( |6 f
- ;; Since zero length arcs are not allowed - construct the full' C) [! g- x: Q7 e
- ;; ellipse in this case.
- B; A# n3 e. I0 q* H0 h5 a - (if (<= (* diffparm diffparm) 1.0e-12); X! z% Z/ N8 k
- (setq endparm (+ stparm (* 2 pi)))
% D. @6 V- X+ J2 S- C - )% v0 L/ o. n" c
- (if (<= endparm stparm)
! P9 N5 N' Z% m, l - (setq endparm (+ endparm (* 2 pi)))+ {! S. S. N0 t/ p& Q5 Z
- ), f# k- C6 Q9 p& C! \% U
- (setq elist (subst (cons 42 endparm) (assoc 42 elist) elist ))
0 H; Q$ ?2 `+ q+ a0 M( v) @8 A! X - ;; Calculate the Major Axis Vector by first calculating, k! x# j9 i( F4 N3 I; ^
- ;; a unit vector using the old Major Radius value. Then
^/ E: k6 r0 c - ;; Multiplying that by the (possibly) new Major Radius2 t% V% i L& f
- ;; value to get the new Major Axis Vector value.
3 Z( ^. m9 p. D; M3 t' T7 t - (setq unitxx (/ xx old_majrad))
. ~4 [, D, Q+ i - (setq unityy (/ yy old_majrad))
; D) }. r S! p: A/ O - (setq unitzz (/ zz old_majrad))
) x* j0 Y, ~) k4 ^) u* q - (setq newvecxx (* unitxx majrad))
8 P; i1 c- d7 [. W" i ` - (setq newvecyy (* unityy majrad))6 O# |* r+ w2 H* A- m
- (setq newveczz (* unitzz majrad))
" B1 b/ u' C# S, D7 Z" K4 K) I- B - (setq newmajaxis (list newvecxx newvecyy newveczz))" \9 F# c. j! v3 i% J4 n( [- Y5 z
- ;; Update Major Axis Vector value( s1 Z: q' A7 H
- (setq elist (subst (cons 11 newmajaxis) (assoc 11 elist) elist ))
6 R+ M: n1 l* f8 b - ;; Update Radius Ratio value
- Y7 p, ?, u% f$ |7 ]4 H/ t' e& } - (setq elist (subst (cons 40 rrat) (assoc 40 elist) elist ))
3 ~! E6 P% c$ V7 |; D( d - (entmod elist)
5 ?( E9 S. t4 f - )
, p( g z9 M6 o2 ~' B - ]6 B7 Z/ }7 R* R" c2 u8 t
- (defun ddellipse ()
/ ?5 Y7 b1 a1 J) S! F4 y2 _ - (if (not (new_dialog "ddellipse" dcl_id)) (exit))
% g7 [+ b1 z0 T$ t - ;; Set initial tile values5 t# p6 A- `& F; E
- (set_tile_props)3 E. A$ q1 T% z& I7 o
- (set_tile_handle); q$ m% {; V+ L0 C7 r7 x
- (set_tile_pt1 1)
) Q* k$ H* T8 o/ N. i) z: b- X% S/ _2 w - (ell_calc)
( l2 U* R# h/ c5 L6 ~6 {( d9 l; R - ;; Define action for tiles; ]9 c+ p0 B) n8 V B
- (set_action_tiles)- X1 o7 ?, T a' x
- (setq dialog-state (start_dialog))
# |+ W4 E* o1 G" W - (if (= dialog-state 0)
. ?' ^( v* m4 [* w" f% [' U - (reset). a4 o6 ?" S, i& ~" G2 s
- ), {: s5 E% E: |
- (if (= dialog-state 1)* Q9 x# N2 ]6 h: q* d
- (modify_ellipse)
! M$ v) T& p! }5 [$ J* Y' \ - )0 R7 x) U4 b( e! A# b I- }
- (if (= dialog-state 3)7 a* N+ ~- d- }5 s" i' ]
- (progn
& J! F3 Y: \& U8 W3 H( M - (modify_ellipse)) U- j1 I9 h1 k3 D) Y. v# f0 o
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
8 w/ i: z- i% L& I3 l: p/ ` - (ver_pt1 1) Z0 c( l( D4 H, w
- (ddellipse)" F6 u. m& K! q+ C% P: c8 J0 Q/ ]5 h
- )
* X! C* a1 @: e1 ] - )$ y; T6 J6 s* O( o% B
- )7 [9 z! n" C+ b' \. V
- ;;
- W5 d" r' Z' B% G - ;; Modify REGION6 x& Y6 q! N- Q
- ;;
$ S' |$ V7 w( N6 Z - (defun modify_region ()1 l- s6 b# E. v, V
- (modify_prop_geom)4 `8 h; b a( F( w1 v3 u' U( K( \
- (entmod elist)
: q7 ]0 \+ [) i3 R$ |9 M - )
! _4 A, j3 ^5 O8 C$ R' H, K
& B, e& m; a4 b3 C2 Z6 A, Y- (defun ddregion ()
; w9 p, s' z. t) L' S- [: j - (if (not (new_dialog "ddregion" dcl_id)) (exit))
' C2 W! j" I) m* P* L( K% j - ;; Set initial tile values7 J! ]& Y: Z6 f; \* G6 O z' G- ?
- (set_tile_props)
1 {; X' B4 @7 w; j1 F; k - (set_tile_handle)" U i: G" Y; O( ?& `6 e$ S
- ;; Define action for tiles
/ _9 t+ P; p7 b# c - (set_action_tiles)
, K @) G! ~9 ]& S - (setq dialog-state (start_dialog))$ w9 [% k* m* j6 M& m
- (if (= dialog-state 0)3 K* g M+ {# H
- (reset)
! w1 A' I$ v: N$ y - )
- E/ [" z7 n6 h5 m2 {+ X - (if (= dialog-state 1)
6 T% t8 o- b. e0 B$ `. m% ?( c3 p - (modify_region)8 a* v: c. [2 E7 i8 y6 p5 ?3 P6 i" L
- )8 j7 k% A5 S1 a2 H3 M
- )3 J0 `& I$ ?9 a* j0 B/ v
- ;;
% r7 r0 T7 v( a" q - ;; Modify 3DSOLID) f+ t( P" K% O$ ` `6 ]/ w+ y$ o& H
- ;;
6 S: T: p1 s5 t d - (defun modify_3dsolid ()
, t* @8 K( ]9 y - (modify_prop_geom)5 }2 b Z4 F6 b
- (entmod elist) `! h5 w) {1 D; `% c. N0 K/ X
- )
8 o$ ]0 [- C- R3 y1 Z
1 r4 g J7 r+ b$ H+ I x, ]- (defun dd3dsolid ()
7 H/ t3 E$ Z) O8 @! }( W' C5 C - (if (not (new_dialog "dd3dsolid" dcl_id)) (exit))& |) ~ Z, _6 n& J/ q
- ;; Set initial tile values! |6 Z" x! g# O* F) U
- (set_tile_props)0 Q" X% e, i9 E* z
- (set_tile_handle)
{7 q1 o: E2 ? - ;; Define action for tiles
+ |: a$ c* l# P" _/ Y - (set_action_tiles)
% J9 p$ v% @) A. W: K5 w' x$ u$ ~9 J - (setq dialog-state (start_dialog))
8 w3 I5 W1 w3 s7 n/ d' a! K; W - (if (= dialog-state 0)9 b- |9 l5 I O3 U
- (reset)
, ?7 O& B9 A, @1 h# u4 M4 p - )
: g# Q2 c2 W6 I( B) C; v' U - (if (= dialog-state 1)
0 A4 T9 f! o. R& F7 S, y+ H% n - (modify_3dsolid)
; g! j5 q0 t. e. Y# s" x: \ - )2 y7 g0 v! j# [
- )0 I8 ^" `3 H- }$ @% W0 p. V
- ;;: I' o) u+ l0 {: ]6 R( y% s; o
- ;; Modify AcDbHatch
- E% h2 g' `6 l, [ A( g9 U' J - ;;, I \4 @1 @( c. ^1 c
- (defun modify_hatch ()- K; v; p$ @. S5 Y% X5 p
- (modify_prop_geom)
2 X; @* J! s1 ]4 z; p - (entmod elist)4 w \/ V; L/ d( n% a: g* a" f
- )
$ _8 |9 A1 y1 I
4 F5 Z( d1 _ v' |# H- (defun ddnewhatch ()
$ W+ ?5 x, g# Y+ b, o - (if (equal hatch-elist nil)
[4 J! l; d9 j5 p5 u; ^ - (setq hatch-elist old-elist)6 }- d8 R2 l0 U# b7 D# ]6 w' q
- )
" H" g, b( `6 D* _ - 6 C/ L% D: ]* B& }
- (if (not (new_dialog "ddnewhatch" dcl_id)) (exit))
( k) N+ N6 p; f% | - 0 V" p: }+ b0 H6 v# b
- ;; disable the thickness tile
* i9 g% t5 H( O - (mode_tile "eb_thickness" 1)
. t. e4 `4 A; D8 Q& K7 L9 G* d6 T - (mode_tile "e_thickness" 1)
0 r* f) k9 I3 p
8 d+ V# ~; x6 w N: V, f4 q- (setq help_entry "modify_associative_hatch_dialog")* `9 a( @# |5 L0 U |: {
- (set_tile_props)
F" z$ f5 E [5 f0 J - (set_tile_handle)
s( M. L4 I+ A8 H/ R6 X: i0 a - # }8 h3 \4 w# o
- ;; Define action for tiles
( E& J9 z2 Y) O5 ^: ]7 h - (set_action_tiles)
& M$ I/ t! D+ X3 w5 g0 Q - (action_tile "b_hatch" "(done_dialog 2)")
* M) V( j7 s) \. d$ M - (setq dialog-state (start_dialog))
5 X D) W7 D0 F7 b; ]. o - (cond; c L- d e7 Q
- ( (eq dialog-state 0)
& Z" j3 @0 |# Q# l% f7 S - (setq old-elist hatch-elist)9 j' @7 e6 F% Z/ ]: v5 N
- (setq hatch-elist nil)
" M5 `. A, e5 K- k7 l! ]3 C - (if (= (checkforlockedlayer ename) nil)
3 ~( y% V- X8 o8 U3 V - (reset)
7 w' _+ O( W& ~4 ~& L - (progn ;;; special handling for locked layer reset& i- K0 z1 W7 `
- ;; unlock the layer
2 V6 R% M! E Q" }2 X1 h - (setq layername (cdr (assoc 8 (cdr (entget ename)))))( l5 ?- e$ I+ W% t! I
- (command "_.-LAYER" "_Unlock" layername ""). t' \! V6 S8 p0 D
- ;; reset modifiction
) d+ Z1 k7 y: V, h* f, ?( A: k - (reset)
- a* `, Q7 b& o( J5 M; y, ^) A; m - ;; lock the layer again
3 v4 b( f: N& D- w8 E# A$ z - (command "_.-LAYER" "_Lock" layername "")
% h3 }4 w) r0 \. h - )
" i& K( o& L4 Q8 `! E! }3 v0 C; D - )9 j, L2 I% x! M, e
- nil ;;; makes (ddnewhatch) return nil for Cancel0 b! C/ ^- I7 S( v) U: C
- )
f/ S3 E: l) f& q; L% ? - ( (eq dialog-state 1)
' N7 z% I4 C/ o6 E - (setq hatch-elist nil)
; Y+ k, A$ c+ _8 i - (modify_hatch)
8 U' j X' O, q) V5 U3 W2 L, O$ S - T ;;; makes (ddnewhatch) return T for Ok
7 A9 J+ M$ G J8 |0 @ - )/ t% A5 v+ X, R8 Y( Z I
- ( (eq dialog-state 2)
# U9 D. {8 a% C% @" O* v0 L - 7 [, C; T9 j) V3 i0 L' x
- (if (= (cdr (assoc 70 (tblsearch "LAYER" elayer)))
; i; P+ j7 h2 y8 r& W* e) D - 4
6 z: `# d9 P" j - ) + w1 X# O! ~5 M, |
- ;;; new selected layer is on a locked layer
/ o1 [8 z$ f- @8 ~9 a4 o1 s- z! ? - ;;; we can simply modify the hatch properties
: o5 @7 i3 x9 l! z - (modify_hatch)
5 o# o# H3 q0 u$ c$ b5 Z8 @ - (progn
" ]8 ?& e4 e- D! I( x" {( {' d - (if (= (cdr (assoc 70 (tblsearch "LAYER" (cdr (assoc 8 (cdr elist))))))7 m5 H; E4 N( B/ \
- 46 q. i; _+ r& {0 |2 t
- ) / |/ k* N* U& J" j' L
- ;;; We changed the layer previously and now the hatch lies on a locked layer.* A5 c2 E; G2 f- }. }2 ^. u/ F+ B, Z
- ;;; We have to unlock the layer forethat we can update the hatch properties.
0 Z! \$ T% N6 q3 ^5 W - ;;; If we don't do that (entmod) fails to update to the new layer.
( c3 o! Z. t: L* N' b0 E" M - (progn
3 ]% X( X1 {) F9 K' N - (setq layername (cdr (assoc 8 (cdr elist))))
; K( ~# R! ]3 X2 t - (command "_.-LAYER" "_Unlock" layername "") ;;; unlock the layer. s, k: Q% E9 [
- (modify_hatch) ;;; update the properties
' Z( F5 u3 D# B: p- j, O - (command "_.-LAYER" "_Lock" layername "") ;;; lock the layer again9 c3 @0 H. Z/ A0 Q; H% R: H
- )+ v* x, W. m" x- o5 U/ j
- ;;; All other cases we simply update the properties+ ^2 a% Y( _ `" `# G
- (modify_hatch)
) r0 p1 A2 z" v% @( W9 g - )7 y* }0 j' Y: V
- )! k2 Z/ A# J2 }7 t- k2 k3 x0 N/ v
- )
' V7 `' w6 _5 M+ ?' O: M$ |! n- b - (if (= (checkforlockedlayer ename) nil)( F! i+ Z; ~5 H2 M
- (command "_hatchedit" ename)
2 Z5 _/ o( {0 t: Q; r - (alert ;|MSG111|;"The hatch object is on a locked layer.")
3 M+ p4 d5 a6 D+ A1 K - )
! y& e9 ~& ]7 [. m) R. } G - (ddmodify ename)- q% I! B& O! S) m" @8 I2 h
- )
# } {1 i- W6 A2 x* D, u ? b - )" q" p H8 h& Y8 R
- )* p3 ?! ]5 A. \! s
- ;;
3 O& d4 |! E7 n: m4 q - ;; Modify BODY1 R2 Z: \) f* g1 m9 R+ h9 t8 T
- ;;$ J" }& [7 l; H: O
- (defun modify_body ()
+ E6 G7 J/ m. ^ - (modify_prop_geom)
$ n+ _5 h9 y+ B% P - (entmod elist)6 {) M% S( p+ L+ C7 E# S
- )
1 s* ]4 R8 j- C' K
; c: s6 H. F9 {5 {4 C: G" n$ x- (defun ddbody ()& t2 S2 T7 E5 N1 P
- (if (not (new_dialog "ddbody" dcl_id)) (exit))
' N3 ]% M1 w% J1 _9 G3 E w - ;; Set initial tile values2 f- b$ N5 P% q. e
- (set_tile_props)/ I W4 Z5 V2 m/ N
- (set_tile_handle)& e/ V4 V! A! w0 b4 V4 N
- ;; Define action for tiles! }1 I3 ~2 Z+ x( N
- (set_action_tiles)8 D+ y6 H4 y5 T
- (setq dialog-state (start_dialog))
0 H- c8 n7 Q8 Y6 E* c( v - (if (= dialog-state 0)
6 K Y p. }" c+ o& w5 T. G - (reset)
5 h* v4 T8 k" d' R6 j3 m - )
# g) W- i" O' v' [$ _ ^ - (if (= dialog-state 1)' B" o' s( }' J! G a/ K
- (modify_body)0 F6 X8 I6 S8 F8 A
- )
4 `# r7 v$ k) H& J- @& v - )
; Q* u b8 _) a2 J2 i% P. | - ;;- @3 F) d" X) a# q1 I
- ;; Modify CIRCLE
4 e" R1 f* r8 W - ;;! @9 I' T; \- v+ n' u% E4 ]3 I5 b
- (defun modify_circle ()3 v. n/ Y/ x! ?6 G m5 L3 t( a3 d
- (modify_properties)9 J$ U' a0 b8 a4 B: \& S/ Q
- (setq pt1 (list x1 y1 z1))5 m: q D3 H9 q$ m6 x1 T
- (tempmod pt1 10 1)$ I/ Z. }; f0 L, r9 `# a
- (tempmod radius 40 nil)( @: H) z3 @! B8 B6 h$ B& I5 a2 F
- (entmod elist)% y6 f% f6 [% H7 l
- )
/ _, ]6 w0 G+ T7 S ?% B
. ]* s+ _* \2 ^) g% d) t4 v- (defun ddcircle ()/ h( r% k( b$ _- w( x$ \$ |
- (if (not (new_dialog "ddcircle" dcl_id)) (exit))) T8 ]/ z: i- Q- b( b' O* `
- ;; Set initial tile values
9 \, p7 O3 t; V/ `: w Y0 Q( E - (set_tile_props)
1 @# w- c! g; n, ` - (set_tile_handle)
4 \4 j5 f; T; `$ ^& V - (set_tile_pt1 1)
# G$ h6 o) `) U5 k - (set_tile_rad)( j. v, m1 t7 W0 z! ^5 y
- (cir_calc), G1 P+ c4 I8 Z' z( _) l
- ;; Define action for tiles. T# F/ |# _% R
- (set_action_tiles) Z1 L' I' w5 F9 W9 z. Z2 ~
- (set_tile_pt1 1)
; _9 o$ ^# Q$ z$ B" l* L - (setq dialog-state (start_dialog)): m" M) B1 [9 e3 m' L. ~- W: a! v
- (if (= dialog-state 0)
( o) j- [$ v9 I4 g - (reset)
5 X& M9 d% q5 V% y; R3 K - )
$ I/ |1 B/ ]9 i3 {* t - (if (= dialog-state 1)
( j9 O0 n; U- i6 R3 ~* w: G( F - (modify_circle)1 V* }- t6 |7 C: f% b0 F2 K
- )
$ z% ]! c1 n1 ~8 v. v8 j3 }( I - (if (= dialog-state 3) Y, o) A# h: g
- (progn4 q- P% i0 _7 T. r3 t z' n
- (modify_circle)4 H) c; v- l8 d: K$ n
- (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))
) W4 Q7 b$ a1 V/ ^" \ - (ver_pt1 1)
( y% Z% e2 r: y1 C7 f! _* C - (ddcircle)
% g0 L& c+ B" l/ n1 B- O% C - )! b) K$ f+ n# U' n* k& R
- )
5 W; R5 Y$ G: k4 V$ j' v9 s - )' o p1 M1 |) x* I
- ;;
- `+ j0 {1 C& z% o; M# w. ? - ;; Modify ARC+ X% `3 n0 p/ f, @7 D8 E, L R b
- ;;2 D" r0 p J7 D- K9 T6 c1 `
- (defun modify_arc ()
& v/ j e, l* @( Z0 s1 b: S - (modify_properties)! } v+ \4 \6 j8 k, L0 L
- (setq pt1 (list x1 y1 z1))
0 C2 l9 k, S) H" s/ J1 v& {- m( P* H% q - (tempmod pt1 10 1)
4 K6 a& R( @" s# e% Y- g; h/ N - (tempmod radius 40 nil). p; c, E* O9 d4 X
- (tempmod st_ang 50 nil)
0 C7 G1 v4 ^. K- a - (tempmod end_ang 51 nil)3 M" Q; {) h* R4 `. Q
- (entmod elist)+ C: k5 n+ N4 Q6 q
- ); V$ ` w' g3 `* a7 ~# G
- (defun ddarc ()
: N8 _; q& _8 z9 _. K U% @- E - (if (not (new_dialog "ddarc" dcl_id)) (exit))& E6 W, q/ ~, \6 k
- ;; Set initial tile values
1 d/ ?0 ~' {. [) Y9 e3 z' e - (set_tile_props)
6 c$ n( y( s0 Y, T F: ?" X$ d - (set_tile_handle)
( c0 r/ w6 w7 M! ~7 B - (set_tile_pt1 1)
; c' t7 Z; z5 y) N- x+ d6 k - (set_tile_rad)* k g1 Y4 v+ h8 U1 ]; b4 r( h' q
- (set_tile_stang)
, R+ K! _3 N' \3 Q4 a$ n$ N - (set_tile_endang)
6 T, x/ V: ^! j% a - (arc_calc)* u. l! v6 v1 t1 {: s
- ;; Define action for tiles8 e' l9 \' S$ W
- (set_action_tiles)
3 {0 Q- C4 d6 F9 z8 r W) Z - (setq dialog-state (start_dialog))
# {; i+ `2 V2 s) v+ j3 z' } - (if (= dialog-state 0)
( G7 o0 c4 }- y0 t - (reset)
4 n' L( z& ?% Z - )
' u: D2 T/ z0 s# p- _* ^ - (if (= dialog-state 1)8 T K8 D2 r4 k# b
- (modify_arc)3 E4 [& H: ?! v7 R1 T6 _9 B
- )" a( g L% F; Y4 P6 g
- (if (= dialog-state 3)
2 ~# p0 r, z& L/ d - (progn4 `: D+ r7 k8 t# A" v6 b; G
- (modify_arc)
4 c+ m! o9 { L% k. N( V - (setq pt1 (getpoint (list x1 y1 z1) "\nCenter point: "))& c. e) {7 a) y+ s3 W
- (ver_pt1 1)
2 u d% o, j" Z [ - (ddarc)
0 V& y2 e. [7 I8 ~2 _ - )/ ~) B5 D% ?) w1 @
- ). i3 ^6 R5 }2 u8 T: M
- )! v3 x- T# d! s5 X l
- ;;, |- O& {5 c7 e/ T2 v
- ;; Modify SOLID or TRACE
5 g8 P2 |9 U/ m4 e: C8 [* n - ;; Note the Z value of the object is determined by the Z value of the fourth
, c# E9 r+ y5 C! g, e) ` - ;; point - code 13. Changing the point values of a solid or trace from a UCS! w! s3 c; h d; a" i* D
- ;; that is nonplanar to the UCS the object was created may confuse the user.
) _! D8 ~. a) T) [6 G - (defun modify_solid ()
$ z2 r; e6 m- l0 @. n& L# P- }# [ - (modify_properties)
$ |8 ^& p1 O- r9 {4 _+ Y - (setq pt1 (list x1 y1 z4))
- l! n) j* P* F/ A( D! P) h, H - (setq pt2 (list x2 y2 z4))4 l6 e E8 A1 H& F
- (setq pt3 (list x3 y3 z4))
$ o/ }7 e! Y+ x. u - (setq pt4 (list x4 y4 z4))3 e, @* t) E; t3 A! }, a- O
- (tempmod pt1 10 1)
s+ R$ H* L, Q7 i' S - (tempmod pt2 11 1). j9 i3 j! ]! v c+ u6 ?
- (tempmod pt3 12 1)/ ?2 O7 g& `, G" @# U
- (tempmod pt4 13 1)# W$ ~% ~. ]% J# ~" F9 D2 ~ z
- (entmod elist)
5 g& w5 w m6 }4 I6 {& q - )3 l) _1 K5 G! Z" a# \: Q9 k1 M
- " c8 d: ] z! c' J
- (defun ddsolid ()
, f+ R6 ?8 y& e2 ` - (if (= etype "SOLID")! J% A$ J6 [1 }( z7 \% f
- (if (not (new_dialog "ddsolid" dcl_id)) (exit))
+ Y* i, @4 a: h1 R$ n0 C" \ - (if (not (new_dialog "ddtrace" dcl_id)) (exit))( Z% Q b# _3 o* c
- )
+ k$ p# k" k2 C3 D) t7 \ - ;; Set initial tile values
. E# v M3 K k2 `& L5 ]. J% L - (set_tile_props)
% }3 n# H5 j- O0 i1 u( c - (set_tile_handle)
. I3 }- S4 i/ z S - (set_tile_pt1 1)
/ I) A+ T3 h! {- }( i" p3 M - (set_tile_pt2 1)
( b7 s+ ^5 ?/ I+ I# Q1 L+ Q% k' \6 y - (set_tile_pt3 1)* X& m. v8 k" I4 ^2 m7 p
- (set_tile_pt4 1)2 _; t$ M; _1 |8 S0 ^8 s2 l0 M
- ;; Define action for tiles. w: L) R- X$ h% I
- (set_action_tiles)
' V0 A0 q% n5 r1 {% P - (setq dialog-state (start_dialog))
3 S; ~) f1 x S9 S, i" a - (if (= dialog-state 0)7 N3 R* V9 R3 R& p1 Q! D
- (reset)
- K4 V: e; i _' h3 y) t4 O6 e - )$ T% J7 {. _) S' d( G
- (if (= dialog-state 1)9 E: s* z O0 L2 l/ Y
- (modify_solid)$ ]+ }/ p( h! C ?3 f; P- c, d
- )
/ a! _1 |2 o" `4 W5 p2 Y2 @7 F - (if (= dialog-state 3)
1 k8 d# H; |- n- g+ W) J! z - (progn/ u: k p: j. @
- (modify_solid)
* m0 }$ e9 ]- e/ l( Y - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst point: "))
8 W+ S: I+ g# o6 \7 _- a2 j - (ver_pt1 1)
, x1 ?! p( K- L u" b% u+ X& O9 w - (ddsolid)8 ~/ c6 U1 L7 Q9 h1 { x% ^
- )
7 I1 w% ]+ V+ M9 ? - )' X; \( W) L; f6 a3 c
- (if (= dialog-state 4)* }* O$ x0 m: b3 {3 w, f. c! ^; L
- (progn/ y6 |+ e {4 s; _, m7 s8 |4 G0 q
- (modify_solid)
+ T8 _! N7 \6 G - (entmod elist), ]+ \: }; t1 U8 `: C
- (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))2 b! \ E, s4 E% v7 i" Z! ~
- (ver_pt2 1)& j1 e' e% ^4 l3 P( Y0 ^5 `
- (ddsolid)# f! @& `' N8 f# R: z4 Z
- ) V6 g! U/ V4 S% |3 A
- ), L$ u7 {4 F' d7 t$ |& T3 d$ j) X
- (if (= dialog-state 5)
0 |: Y& N! [7 H/ w - (progn
0 r6 h' q) q3 |; J - (modify_solid)
5 S2 ?- f1 O6 m - (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))6 A+ `7 M6 y/ \7 u
- (ver_pt3 1)
+ B5 d$ ]' _9 W3 X) v' V. | - (ddsolid)+ M* R+ F- r& p# n
- )8 E" ^. J! k( ~* n0 G$ K& e' d6 ]
- )8 v% Q5 j x# a
- (if (= dialog-state 6)
. B6 D6 F: E N/ l4 i7 Y - (progn
f5 _& M; t" ?* W" ~' C - (modify_solid)
9 E, t$ F0 P. E' ~0 [) \7 ?! O+ Z - (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
! B, G' _- e7 v5 P7 ` A - (ver_pt4 1)
, B9 j9 t( o5 M6 K- h# C5 a - (ddsolid)" V, G4 M) E4 _( V8 _3 _4 V. q7 e! @
- )& `- W: @* Y a& `' h0 \$ Z
- )
2 H4 C0 R9 Z9 A - )' `6 A2 Z2 K& [ W8 Y0 `
- ;;
, L/ V- a9 m) N# f3 b - ;; Modify 3DFACE$ r" C. C. T& j
- ;;
! f8 F% i7 g: d* j5 B& p - ;; Check visibility of edges( P/ E0 |! N r8 h% B# g- _. M, r
- ;;# D- {7 g2 B0 g
- (defun edgetest (/ bit1 bit2 bit3 bit4)& W" Y% r1 I3 s5 N
- (if (= edge1 "1") (setq bit1 0) (setq bit1 1))( z& `5 x/ K$ ?
- (if (= edge2 "1") (setq bit2 0) (setq bit2 2))- I- _: A5 o4 {$ `; U
- (if (= edge3 "1") (setq bit3 0) (setq bit3 4))* N7 V4 C) z0 H( i; c& L1 a+ A" {
- (if (= edge4 "1") (setq bit4 0) (setq bit4 8))
& `' x2 O' |+ O8 s- _$ n* O - (+ bit1 bit2 bit3 bit4)6 G( X- r& T, ?3 m6 Y
- )
" k$ v* u/ q3 a( ?1 X; B - 4 M Z, o6 N T. f+ X2 v1 {7 U
- (defun modify_3dface ()0 ?& h$ ?" f4 K" O K0 R3 M! a
- (modify_properties)4 k; B2 P1 Q$ r. G
- (setq pt1 (list x1 y1 z1))6 O8 {6 _! Y+ j& v' N7 y
- (setq pt2 (list x2 y2 z2))
, R6 D' r1 R; B# F8 l0 }$ r- I5 m - (setq pt3 (list x3 y3 z3))
3 }+ L+ C. m1 P8 `4 e - (setq pt4 (list x4 y4 z4))) g4 W0 V( b4 G5 s
- (tempmod pt1 10 0). o) c% @9 \+ |8 O, O
- (tempmod pt2 11 0)
1 d/ [, f* D& r! { - (tempmod pt3 12 0)/ l p- f. X4 w: C4 \, I4 D
- (tempmod pt4 13 0)+ y& y; \* n( c% D( V5 t5 P& B0 t
- (tempmod (edgetest) 70 nil)4 z0 o# K" y! h$ T8 d3 s
- (entmod elist)
: H9 w. F% g u/ d0 c/ _ - )9 ^7 K8 e d1 k3 C/ o" c* a/ z8 W
) J2 g' i4 I) t# T1 V- (defun dd3dface ()
! H3 g. c+ e9 V, x b - (if (not (new_dialog "dd3dface" dcl_id)) (exit))
5 u/ P; _# G" B, ~ |" j' v- E Q - (set_tile_props)3 G% x5 E/ s4 S' Y0 d+ V) ?6 i
- (set_tile_handle)
4 S( M. B' B4 Q% E( X - (set_tile_pt1 0)4 T7 O: d' g( ^8 h; S9 p& K) i6 U
- (set_tile_pt2 0)) y0 \9 h. Z8 f4 |
- (set_tile_pt3 0)
d. w, c+ G- e! z - (set_tile_pt4 0)
/ {+ N2 {0 ~# P1 e4 V2 P" I# Q ]8 S$ x - (set_tile_edges)
; T, U" @9 N' Z( q$ j - ;; Define action for tiles, X) O4 K. g9 p+ Z- c- ]. K
- (set_action_tiles)" \. U( O E0 f1 e2 m3 A
- (setq dialog-state (start_dialog))
( I) g3 g3 M& f* J6 u/ c - (if (= dialog-state 0)9 Y& b# A9 d5 i/ ]: [
- (reset)
1 Y* {/ o2 k' u - )! R( q0 a) T* j* r! ?
- (if (= dialog-state 1)5 |; Y5 j* c) f: s: ?
- (modify_3dface)5 H, \4 W# _+ u, i S7 n$ N+ N
- )& L1 H* z2 Y: V6 D# G3 N6 t
- (if (= dialog-state 3)
- h; s" }- M; n/ Y - (progn
0 B' a; j( I* d3 c# c - (modify_3dface)
" b1 X4 r2 \, l6 f: U. S - (setq pt1 (getpoint (list x1 y1 z1) "\nFirst pt: "))) ]* }2 T `6 l& b" G$ B, J G& ~
- (ver_pt1 0)
; U" d, r" W* l - (dd3dface)
' f/ a: G4 W4 W+ r - ); M& n) ]6 c: t8 a \. E0 [; T
- )
6 S# ~" M0 p- n/ @- s. Y k, w - (if (= dialog-state 4)
8 V0 h2 j# E m - (progn
, P3 w& L- m" [8 u1 o7 C - (modify_3dface)
, J" r' {/ ^. ~9 N Y" H. S8 P - (setq pt2 (getpoint (list x2 y2 z2) "\nSecond point: "))
( b- d7 }, ~# M$ T C - (ver_pt2 0)1 M3 w% {) K( a8 [ q5 R
- (dd3dface); t# U/ ~" x Q
- )
4 t) B3 I( l$ }' W; F8 Q6 Y - )
& O- ^1 h4 }( f- W - (if (= dialog-state 5)
, B$ L4 }& t( J* l+ m - (progn* w0 s0 e! ^, j, g% g0 K
- (modify_3dface)2 l1 C8 u& J! b4 l- O- S
- (setq pt3 (getpoint (list x3 y3 z3) "\nThird point: "))
$ l) _" O9 N! b& t; l2 C. g - (ver_pt3 0)
3 |6 Y$ `3 w( w, o9 J/ I% S X* y - (dd3dface)
: |8 K+ I0 M$ E' U$ Q1 w8 } - )) d2 ^. E6 u* ^. u
- )
; c; W3 D! l) n# O# R - (if (= dialog-state 6)# i8 c7 r) I) t u$ I3 ?) a$ f6 l
- (progn6 E9 V# M1 d+ O
- (modify_3dface)' x; r0 r2 w: F! r# N+ L
- (setq pt4 (getpoint (list x4 y4 z4) "\nFourth point: "))
, v. I T2 \2 G; t8 {/ }# H; E2 C - (ver_pt4 0)
; r/ z! d) D7 N8 y - (dd3dface)2 N* B4 [ y) j6 B
- )
. U9 g9 i( A. N7 _- m3 } - )& o3 ]3 B Y5 T
- )
8 I1 I' f" z( x! h4 k; `2 Z6 E
, t; `+ {4 ~1 G5 W9 \- ;;
r( l6 C. ~+ w# E3 Y9 e - ;; Image functions
5 E" j+ U0 B& a2 h9 F# p - ;;
/ d0 Y: s. A ? - (defun image_scale (/ upixel en n userscale temp)
& s% n# }4 K! T3 a# O2 l - ;; Calculate the size of an image pixel in AutoCAD units
/ ?1 v' L! b+ k7 {* p2 ~) n - (setq upixel (distance '(0 0 0) (cdr (assoc 11 elist))))
p/ M; m$ L; r" Z' J
- e. A* h- ]: K: i+ _- ;; Retrieve the user scale2 S2 B; D# H8 u% F
- (setq en (dictsearch (namedobjdict) "ACAD_IMAGE_VARS"))/ A& n* S4 y; G/ q, B
- + W- U; ?9 k* q/ ~# O' n3 W; B$ r
- ;; Next, extract the image units and pixel resolution
5 S0 g! S5 ]* u( e) H - (if (or (= 0 (cdr (assoc 281 image:olist))) (= 0 (cdr (assoc 72 en))))
- [, U5 c$ Z8 x2 O( d( u - (setq image:scale (* (cadr (assoc 13 elist)) upixel))
0 `1 @& M9 z. w) D& s - (progn
d) t5 L0 w% R; U0 ?5 p - ;; Convert the user scale to the proper word
8 o. M$ S5 g8 M n8 H8 T" j, k - (setq n (cdr (assoc 72 en)))+ p$ I- `# Z, T0 a! `* G' \
- (setq temp (getvar "LUNITS"))) n4 D6 u4 j' j/ ?3 B
- (if (and (/= n 0) (or (= temp 3) (= temp 4))) (setq n 5))
7 S# L# S' Q& A( T, f8 {, N% N - (if (= n 1) (setq userscale "Millimeter"))' @ ]" J3 `( r# |- ~
- (if (= n 2) (setq userscale "Centimeter"))
/ }3 v# O0 |7 p* K - (if (= n 3) (setq userscale "Meter"))
, D1 f8 }8 S# q* X3 [9 \0 M6 _6 G - (if (= n 4) (setq userscale "Kilometer"))& g7 C& \8 _ ]: y' I1 C6 ]
- (if (= n 5) (setq userscale "Inch"))
+ H% V5 V+ {$ k/ k! P8 P - (if (= n 6) (setq userscale "Foot"))9 W* O0 ?2 U7 I0 W# F) }3 m
- (if (= n 7) (setq userscale "Yard"))
0 l, X1 u4 M* z0 S8 |" Q - (if (= n 8) (setq userscale "Mile"))
- E0 w/ `- g1 o9 H/ C: r - (setq image:scale (/ upixel (cvunit 1 "Millimeter" userscale) (cadr (assoc 11 image:olist)))). Y. D0 z3 H+ z
- )- v5 @, z h$ |, h9 s
- )
3 w9 o* E5 {9 ?5 `7 b - )
/ L( i% M3 z, D) ?; L% K8 y
8 h- P0 L7 @/ w- ;;, ^( Y5 O- r: K+ ?! w
- ;; Scale factors for block insertions' n1 T8 _2 g D/ w; M+ s
- ;;
1 o" o- c2 F9 X - (defun image_set_tile_scale (/ temp). R5 i5 m7 f/ P# A1 k% y
- (setq temp (getvar "LUNITS"))
7 l$ U+ J; O/ F2 m* l9 Q - (setvar "LUNITS" 2)
; ?8 [' J5 a( Q: @' }0 L - (set_tile "xscale" (ai_rtos (* image:scale image:mult)))
# K5 D6 ~1 W) f5 V6 O" m - (set_tile "wid" (ai_rtos (* image:width image:mult)))
1 T2 m+ K$ K) m+ B# v! K0 z - (set_tile "hght" (ai_rtos (* image:height image:mult)))
1 P. z6 {4 R9 D; [ - (setvar "LUNITS" temp)
: d4 J; u4 i8 H; c2 ]/ J - )" ^8 c+ q% Z" j6 w8 e+ t& E$ u
0 B. P& _# {4 e, [1 h" g* l, w- ;;1 `' }; G: F7 ]9 g- |* K+ A
- ;; Set the scale, width and height values appropriately.
3 p6 J1 \+ s% D& x* r - ;;) j: A& p8 ^- X5 ~5 K9 R' R
- (defun image_update (field value / orig_value new_value mult)
7 J2 m; C1 H5 S1 N( t' T5 f - (if (= field "xscale"); a' c- [$ c5 I& K- ?, `
- (setq orig_value image:scale)
* [/ H6 t- h$ S1 ~) t# C4 ~. Z - ): |! Q7 h. Q0 U5 i8 G
- (if (= field "wid")
! u+ g5 h) D9 F5 H; k; i8 R - (setq orig_value image:width)
6 i- t9 z+ D2 ^& O- ]6 }: k - )
+ W$ ~; ]/ D1 u+ V( T% r# e6 i - (if (= field "hght")
- K; Z; d# G- u& i, @) v; o; I - (setq orig_value image:height)- w7 K/ F. e/ p
- ); q, u' h. ` c; D1 t. H* T- C
- (setq new_value (verify_d field value (* image:mult orig_value)))
1 }1 Y, N) W- w* y) Z - (if (/= new_value old_value)5 o1 _- ^! s7 {8 w4 J. b
- ;; Make sure the user has entered a sufficiently large value% }% Y9 v S5 ^
- (if new_value* g3 B# N+ J2 q3 \# m0 M2 g
- (progn) e, c: w0 K8 k3 ~+ O8 f
- (if (< new_value 1e-8)
( O, w: o8 H3 q x5 k - (setq mult image:mult)$ E& e% h4 p9 n% ]8 u' F/ n, a
- (setq mult (/ new_value orig_value))6 }8 w: ~0 r s" h$ W7 Q4 Q' G# q
- ): F" V+ ^$ X$ ]3 P, @7 \
- (setq image:mult mult)% }. n' U7 J( c: w% k
- (image_set_tile_scale)
4 P* d% T4 L( Z1 W - )
- K+ V3 p1 a% u - )7 y9 f. X6 J) L. E1 S1 G
- ) G' f7 n' E. V5 x$ k/ I
- )# g* h, i" L% T6 X
- % t# ^% g, x- }# r6 [9 a
- (defun image_disp_opt (bit)9 W: a* w7 S; s7 y( t" }0 G& h) y
- (setq image:options (Boole 6 image:options bit))
R2 C8 G3 D% ^# d - ) M4 s8 A; w X) ^( c0 v
- 3 F W# |( S$ M6 C( H
- (defun image_modify ()( A, s2 | \4 p5 h& Q
- (modify_properties)
M& ^* }3 B5 D8 b# N) p' P - (setq pt1 (list x1 y1 z1))' j- J- r3 p1 }- {
- (tempmod pt1 10 0)
' }, F8 g8 F% z8 U, `, ?) a6 w1 ]4 M: [ - (entmod elist)
: C& E& V: i: L - )9 I# {% }% o+ r+ w4 F
& v8 ` T \2 B ]/ F- (defun image_clean_variables ()! _- X5 s u2 p u- z- j. i$ L1 c, f3 G
- ;; Clean up global variables used here! ~2 Y% D9 @/ n& a9 B; p
- (setq image:scale nil)
$ U8 `/ }, X+ ~ - (setq image:angle nil)! v% ^! J. H. o! p, ^1 D
- (setq image:width nil), S; M6 z5 I3 T& A
- (setq image:height nil)
! y8 \ k) o. ?7 v3 g - (setq image:options nil)
- Z6 g9 x3 J! W7 z/ `& b9 H4 V - (setq image:oname nil)4 m- A8 Z# Z1 o% h4 c
- (setq image:olist nil)
4 x6 X X, G+ W1 H. I - (setq image:mult nil)
) R) E7 m0 a& Q7 x H) ^ - (setq st_ang nil)
+ z0 k: V% A! U# c0 G% Z8 }, E - )6 J6 o1 [/ N; a; `
- 4 Z! H9 B% a& _/ n \
- (defun image_scale_vector (v1 value)7 D: X. f6 P! W; Z' t, E! z
- (list (* (car v1) value) (* (cadr v1) value) (* (last v1) value))% v5 {: }# `! Y2 B
- )
* ?8 m- ?% y4 b9 x4 k; d - 5 P$ r8 a3 t9 z9 X( d
- (defun image_cross_product (v1 v2 / vx vy vz)
2 V. u' L, j% L1 b: Z3 c - (setq vx (- (* (cadr v1) (last v2)) (* (cadr v2) (last v1))))
( f: s. `; o; E; N+ y - (setq vy (- (* (car v2) (last v1)) (* (car v1) (last v2))))
- _3 ~2 Y6 T9 w - (setq vz (- (* (car v1) (cadr v2)) (* (car v2) (cadr v1))))
; `9 `' O' L# Q - (list vx vy vz)
/ z+ F" G2 N3 L, l2 m7 P/ Q - )3 ^/ I0 y- k8 h# n2 _( F) E# e
- 3 l8 m1 A1 E+ D; n0 g4 q
- (defun image_dot_product (v1 v2)
( ?) H5 L( T! x! B7 L7 ]3 ? - (+ (* (car v1) (car v2)) (* (cadr v1) (cadr v2)) (* (last v1) (last v2)))
; S0 b, ~- \" y. l4 T A5 H - )
2 T, D6 G* F4 J8 f# N4 ^
, a. b* @: O5 a- (defun image_add_vector (v1 v2)8 n8 M; p9 c7 }4 g) y0 O7 |5 h
- (list (+ (car v1) (car v2)) (+ (cadr v1) (cadr v2)) (+ (last v1) (last v2)))( {* J% q2 w. t+ x4 {
- )# w8 s* R& c- R W' R3 A& d9 N
5 I0 m5 ?% e( D- (defun image_subtract_vector (v1 v2)6 i/ C5 q7 e! V% Q$ A
- (list (- (car v1) (car v2)) (- (cadr v1) (cadr v2)) (- (last v1) (last v2))) @7 V7 u' H! ]' D
- )
: t5 _* S, s5 h5 l' W7 {- g v+ W
9 F) K- [- @1 ]8 N9 X6 Y- (defun image_normalize_vector (v1)
; U0 Y6 f; K3 s4 I( T7 {. _( E - (image_scale_vector v1 (/ 1. (sqrt (image_dot_product v1 v1))))$ Z) ~: k, m5 c+ H' }
- )
, m+ H5 { }$ ?9 ] - : ^$ a6 z7 b: J, Q2 M. q
- (defun image_rotate_vector (vector angle axis / along_axis axis_x_in_rot_plane axis_y_in_rot_plane in_rot_plane)
$ \* Y" s% N- G3 N8 r2 o - ;; Normalize the axis5 v* r0 l/ d1 t
- (setq axis (image_normalize_vector axis))
7 C5 i1 H2 Q" B% ^& V0 W% W, n - (setq along_axis (image_scale_vector axis (image_dot_product vector axis)))
3 Q, ?" G& _. ? Y1 i+ d - (setq axis_x_in_rot_plane (image_subtract_vector vector along_axis))- C+ b/ j: w0 J
- (setq axis_y_in_rot_plane (image_cross_product axis axis_x_in_rot_plane)), Q/ u" M: n1 C' y
- (setq in_rot_plane. I& o: t4 r- A& M
- (image_add_vector! x/ E7 k) u& | m: J
- (image_scale_vector axis_x_in_rot_plane (cos angle))- v% k% l' e: P) F; Z
- (image_scale_vector axis_y_in_rot_plane (sin angle))4 w& l C9 I) S' O# s* X2 M9 `
- )
, ^3 F+ g% T" B# K - )" ~: s9 Y& z3 r6 R
- (image_add_vector along_axis in_rot_plane) `4 q7 }: i- Q* w4 U7 I- l' i
- )! B R/ H5 y4 A' v9 D. W6 C
/ u9 R: n4 j" c) i5 s5 I0 |- ;;" o/ j. y' V/ @4 A
- ;; Calculate current rotation angle if appropriate.
% B6 Q4 a7 ^5 Q# z; R; v( e! Q( C+ s - ;; If not, grey out the rotation field.4 j f; N' b" X& o* |
- ;;9 B* q8 U4 `5 m# z
- (defun image_rotation (/ normal rlength zlength sqrt_tolerance)5 J1 P, |* p9 ?. j2 `6 f7 v0 k
- ;; Determine if image normal is codirectional with
/ ]/ c2 H# J+ O9 T, } - ;; the current UCS Z-vector.
, [* n6 M; ?4 V7 O - ;;
5 T- |+ e" C' Y( ~ - (setq normal (trans (image_normalize_vector (image_cross_product (cdr (assoc 11 elist)) (cdr (assoc 12 elist)))) 0 1 1))
: a2 S, N$ T& p+ Z! K- ]0 a - (setq rlength (+ (* (car normal) (car normal)) (* (cadr normal) (cadr normal))))" f7 W) o1 s) ]/ D5 V& S
- (setq zlength (* (last normal) (last normal)))
& S1 R# s, w% G( e% G - ;; Note that the value .0001 in the radians is approximately 0.0057 degrees., i8 w! U( R7 R4 t2 g" R& w
- ;;
* R; ^" ^ A" ~& p- T8 T - ;; cos(.0001)^2& T' Z i! l8 Y: J2 }$ q
- ;; Tolerance = --------------
) c( P# E ~! S% s1 c% @ - ;; sin(.0001)^2: M- M5 j; y q
- ;;+ [' ^9 b: N$ @) Z; a! g4 z
- (setq sqrt_tolerance (/ (cos 0.0001) (sin 0.0001)))
4 m1 g+ H4 q; O7 {. a( g z - (if (and (< (* rlength sqrt_tolerance sqrt_tolerance) zlength) (> (last normal) 0))
. p" l# b. m! p' T - (setq image:angle (angle '(0 0 0) (trans (cdr (assoc 11 elist)) 0 1 1)))1 N4 @$ ]5 |+ _$ Z. V! E6 ?; K* _
- (progn7 p( T1 M- ^9 B1 I7 H' l- Y! a6 o7 H K* O
- (mode_tile "st_ang" 1)4 \0 t0 T: }9 C% o* X
- (setq image:angle 0)
; c! ~. |7 k3 j W - )
! @2 \% s) a$ z& B - )! Z0 B" X- c- p; h
- )% ~( G2 }! f5 m( ]0 s: d0 P
- % W/ B( T% O f' g1 n- b
- ;;
& _; H$ x$ R8 D/ }$ | - ;; Modify Image
# i3 |+ J7 u. u0 }! |. b$ G9 @ - ;;
5 p- A: f6 U7 P5 w- } - (defun modify_image (/ u_vector v_vector z_vector): C3 A* g+ }% _/ Y L
- (modify_properties)7 w% p5 m' N7 z2 ]# b6 f6 O8 i4 Q4 z
- (setq pt1 (list x1 y1 z1))
5 ^ y1 j9 ~' Z Y7 [0 S2 u8 U - (tempmod pt1 10 0)
! v1 r( ?/ w( D2 M% q - ;; Make display option changes to image& H/ f! Z' m4 C$ s3 Z! j: Z8 M
- (emod image:options 70)
D% A2 P- {( \0 q5 x! H& X- k - ;; Get the u and v vectors5 m; I8 R) h9 i' U9 I/ [- S
- (setq u_vector (cdr (assoc 11 elist)))
0 P% D) L2 |$ J) W0 n - (setq v_vector (cdr (assoc 12 elist)))
4 j; E6 ?6 D/ e - 2 h; u0 R; m: Y' W/ _
- ;; Make scale changes to the vectors
* E' w9 p: h6 X# D# b - (if (/= image:mult 1)
8 C% P- C. c( o+ V4 h - (progn
/ P5 v* C! r( C6 a0 m - (setq u_vector (image_scale_vector u_vector image:mult))
& x6 l7 ]/ Y$ U* k' e4 r7 X, }" P/ T - (setq v_vector (image_scale_vector v_vector image:mult))
( y# E! V$ a8 }- T6 r# x7 y - ). h" D7 h) ?% P( Q3 m: q
- )
{: k) H) X: m" o8 ~0 @% K - ;; Rotate the vectors
3 K( i1 e- Y" _0 @1 U( L - (setq st_ang (- st_ang image:angle))
! I+ d7 z' c. B! k" t( R" T - (if (/= st_ang 0)* h! q& R4 {3 B
- (progn1 U7 E7 r0 g/ f+ r: c1 ?
- (setq z_vector
: Q# @: ]! W& u+ T - (image_cross_product
7 X r1 K7 m y+ P( i3 ^ - (image_normalize_vector u_vector)3 Y' j$ ^7 B- R
- (image_normalize_vector v_vector)
2 x; E# e( H* x0 f9 r7 J - )
+ J0 a2 ^4 N* c, Q - )2 n+ W) W o" ]
- (setq u_vector (image_rotate_vector u_vector st_ang z_vector))
& o0 p$ D9 {9 T. C: @7 D - (setq v_vector (image_rotate_vector v_vector st_ang z_vector))9 D% G" S1 `0 s g
- )- N; O! n5 H3 U- X3 m0 ~
- )
+ ~) I x( x! Z7 S, h S! A - (emod u_vector 11)
0 D" i! z/ u4 u - (emod v_vector 12)
/ \& R- F/ {) P$ S - (entmod elist)
6 R5 s* H9 f' i0 h. F, k; q - )0 h5 Y/ A# @/ ]# ]( j. t7 m
- q. ]6 m2 r1 \& F; X- ;;8 i: Y4 ]- S0 N; N6 L
- ;; Run imageadjust on given entity, working around possible
( ~0 P) i# U. e* K7 h' W( P0 N - ;; re-entrancy problems
: B% F ^; J/ A/ I' o. K. [- I# [ - ;;: f; f j+ ^4 \1 w) ?! W) E
- (defun image_adjust (ename)7 M4 }$ J4 [' u$ K( S+ U" Q
- (verify_arxapp_loaded "ism.arx") ;; make sure it's loaded...6 l4 {* q# |0 D# ^- [
- (imageadjust ename)
- P2 q' M7 X7 K1 I9 l$ x. y" B" ^ - )
' n8 ~) _+ }* N3 e4 L
4 G0 w. y. z2 p( I- (defun ddimage ()- b) E: j2 w0 H5 ~+ ?- H' P; {
- (if (not (new_dialog "ddimage" dcl_id)) (exit))' E5 }9 M& c% {- [3 `
- ) n( `/ n6 k4 \' {; ?; t4 K
- ;; Grey out the thickness field.
+ |, x( C) {+ ` - (mode_tile "b_thickness" 1)7 o: A; d; Q. p$ `% \: L. F
- (mode_tile "eb_thickness" 1)
( C/ Z' S- b- j! [' K t! w, s
5 @8 B/ v9 N) i: v+ c- ;; Get the associated def object.
) Y9 O0 J- }0 W3 h% f - (setq image:oname (cdr (assoc 340 elist)))
/ i1 A8 c: k: }( V - (setq image:olist (entget image:oname))% ?7 T% k# K6 l* E, o
- 8 c: b5 m- K! o* k3 e
- ;; Set initial tile values4 b: l) P8 u! }: x, _
- (set_tile_props): c, S5 Q- e% F; F9 a0 a) o7 f1 c! a
- (set_tile_handle)9 r' r9 F1 t) j" M l8 M9 e
- (set_tile_pt1 0)
* d/ f6 P" y. Y' U9 m& a - (setq image:scale (image_scale))6 A9 G( Z; T7 W' x# `
- (setq st_ang (image_rotation))+ H& |* t! ^' v2 x+ ?1 h
- (setq image:width (* (distance '(0 0 0) (cdr (assoc 11 elist))) (cadr (assoc 13 elist))))$ F: P4 c( Y# U3 ]* X9 h* q0 N! D
- (setq image:height (* (distance '(0 0 0) (cdr (assoc 12 elist))) (caddr (assoc 13 elist))))
$ G: ?, f; f, Q$ g d - (setq image:options (cdr (assoc 70 elist)))
. Z' ~( f1 g- y; a! U$ H/ v# ~
$ O0 d* c+ K7 V9 J6 {2 [0 D2 L- ;; Record the last multiplier for use in image_update function5 d( f# Y7 f }
- (setq image:mult 1)0 A, p) m! z/ b+ a2 A8 v
- + \9 Y+ T+ }8 i; j% x! v }8 f
- ;; Retrieve the image name+ _ a: ] h& ?) a
- (setq fn (reverse (dictsearch (namedobjdict) "ACAD_IMAGE_DICT")))$ z* g3 Y7 l" O1 U! w1 g/ F
- (setq flag 0)
( a% j! g( f9 r. l - (foreach n fn0 N" U1 j; d O" H1 \
- (if (= flag 1)/ ~+ Y8 [2 I# s+ h4 r4 f
- (progn7 n' o: [8 ^* ^; w
- ;; Display the image name% N: K, w1 `( i! O# U* N' y
- (set_tile "image_name" (cdr n))
: K9 L d+ y/ B2 Q - (setq flag 2)- l- [+ `( O6 A5 X) q
- )
2 h! K3 n& _9 ^ V& e% Q; A1 e - )$ E+ y9 z/ ~ o8 P" u' X* Q
- (if (= flag 0)
) S) Y. c! X y. k" y: B/ @% K* G - (if (equal (cdr n) image:oname) (setq flag 1))4 W2 u j. o }9 Y d8 p
- )( R( {2 K; q+ W7 d- T
- )# L) v, s! J, H
$ b; b+ e# P9 y3 T, l- (set_tile "image_path" (cdr (assoc 1 image:olist)))5 W) m7 e7 k1 t" ^6 A3 ^- z4 [
- (set_tile "st_ang" (ai_angtos image:angle))8 q7 i8 U8 K/ `
- (image_set_tile_scale)
3 \. X& g* n* u2 q% W, x( W
5 Y/ h# f6 W) L$ f. f4 x- ;; Check the appropriate boxes
: A; D7 D/ ]4 a' Y' y* h3 D - (if (/= (Boole 1 image:options 1) 0) (set_tile "image_show" "1"))
& {% i, S8 A+ Y H \/ i, k - (if (/= (Boole 1 image:options 2) 0) (set_tile "image_non_ortho" "1"))
3 t" @0 r; H: O* G - (if (/= (Boole 1 image:options 4) 0) (set_tile "image_clipped" "1"))
+ a/ w& |9 _( j% ^% Z - (if (/= (Boole 1 image:options 8) 0) (set_tile "image_transparency" "1"))2 x/ p H9 g: b3 @7 }
- Y. j. \7 _0 n+ `( w* o
- ;; Define action for tiles
+ {, X7 B& M, z- Q3 C8 T; ?) p - (set_action_tiles): R; a' ], {7 c, @1 ~
- (action_tile "xscale" "(image_update \"xscale\" $value)")
; f) [4 E, N1 S0 t - (action_tile "st_ang" "(ver_ang1 $value)")
1 y2 u7 n8 c: S - (action_tile "wid" "(image_update \"wid\" $value)")
- d* R9 \/ b. k - (action_tile "hght" "(image_update \"hght\" $value)")
& R+ w9 v p F' b4 g3 q9 f - (action_tile "image_show" "(image_disp_opt 1)")
: g$ ?# P4 a Y6 U# @9 w - (action_tile "image_non_ortho" "(image_disp_opt 2)")8 O; f3 o' b+ v+ h* B
- (action_tile "image_clipped" "(image_disp_opt 4)")
; k0 [& s: h7 H6 Z1 h - (action_tile "image_transparency" "(image_disp_opt 8)")& {' ^6 ~9 l. Q* j! a, N0 M
- (action_tile "image_adjust" "(done_dialog 4)")3 N8 M& }4 h. {7 ]) m
; M9 E, J& b7 I' n/ V( J- (setq dialog-state (start_dialog))
. G! {% M+ \ }- a- V - (if (= dialog-state 0)
3 @4 O( }! G6 \# U9 _- N - (progn
+ b; E# T) T( X - (reset)! G0 V8 `4 s1 d; L4 h
- (image_clean_variables)" G$ S& J& w3 _3 @: ^" q3 F+ y
- )' t# e2 A$ F5 ?- ^
- ): N& a( S* O& n- B0 r
- (if (= dialog-state 1)
1 W, b' K b/ x& p2 A/ }0 }7 d' R* w, j - (progn/ W+ D6 O; }: b p* E, A( z& P
- (modify_image)
) f4 H I% e6 O6 F - (image_clean_variables)
. \0 A# t$ H/ S' m2 c. T5 s - ) ]( ~) Y) ?! n K7 V, P# u
- )+ d1 k" C* y; L. w
- (if (= dialog-state 3)
2 V9 `) K9 a( s - (progn$ q! Y2 e9 x! |! Y9 ~, |) f& @3 ]
- (modify_image)
/ G$ q/ n# b0 L( s - (image_clean_variables)
) J- R! O5 ` L/ I! @7 g' |# o - (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: "))* q, m$ g: J6 Z( v. ?/ S$ B
- (ver_pt1 0)( M3 ~* B2 b3 b4 c3 c% l
- (ddimage)
! @2 D9 |; T x# F7 W# l8 r8 D- L$ L( f - )2 S2 P; N4 ^4 U0 r* w% H# U- ~0 O2 f
- )/ v3 R, N6 ?6 u. @
- (if (= dialog-state 4)
& X" W% p- Y( G" X0 }7 t; j - (progn1 r" {5 N: ^# d9 M, r
- (modify_image)
4 p- w+ x7 d( o; ^( Y/ c$ ~; ?8 y9 l - (image_adjust ename)
; `5 D7 t: a7 b& k - (setq elist (entget ename))% k- d( E. b4 u% \) W
- (ddimage)
) z! j2 m8 `. s4 ~, X. t8 R - )
+ H8 G+ w/ r# x$ D - )
7 ]! c5 H I2 v$ e, v - )
' o( ^: T8 J- n: ~ - . p, M# B- Q3 ^6 T. g
- ;;
: F" M% E7 F( H9 ^ - ;; Modify BLOCK (and its Attributes, if any)
0 a& h& @9 }0 `+ C - ;;
; G L6 U$ B$ Y/ l8 p - (defun modify_block ( / el en2 p1 p2 oldp1 oldp2 new_hgt old_hgt attr" r* ~' c% ?! X6 F
- new_wid old_wid old_rot scaling old_scale
. u) Q# F) G" T% u2 v - xdelta ydelta zdelta xbase ybase zbase ipos)2 O) x) T. }1 ~ f' M' x
- (modify_properties)
- }0 P4 ] {8 ~0 k/ K - + H4 F N+ D+ A
- ;; First, translate and scale the Attributes, if there are any.
+ d p' `6 D W) e+ L9 T - (setq old_rot (cdr (assoc 50 elist)). j+ i& r. s! J
- old_scale (list (cdr (assoc 41 elist))1 W- S8 B e" L8 ?) o; x% }
- (cdr (assoc 42 elist)); x5 d6 _! y0 B( |
- (cdr (assoc 43 elist))* w- U. V0 u& o( t; ^- N; \ |4 j' P
- )
* N0 o1 T3 w7 f& E2 U; } - scaling (or (/= xscale (car old_scale))
) u z) R; K* M! B9 E7 u" \* U6 K' \- | - (/= yscale (cadr old_scale))5 w0 o3 h; I7 A
- (/= zscale (caddr old_scale))% `8 B6 n2 D& h. Y: _
- )- g& J# c0 K# k/ m
- attr nil ; No Attributes modified yet+ F, q# W$ G8 k0 L: G
- )/ L) U/ I) `2 h# ~8 a# ]6 P5 P
- (if scaling
6 `; W$ d9 [3 Q. x; t4 Y) [' u - (progn6 m. `6 Y( w% L# b
- (setq xdelta (/ xscale (car old_scale))! A! y# v: q2 ~3 B6 r3 M+ ]
- ydelta (/ yscale (cadr old_scale))
9 {# @6 ^7 B, h. |' l6 V. ~ - zdelta (/ zscale (caddr old_scale))
3 D% |4 \, R, Y - ipos (cdr (assoc 10 elist))
) R6 W8 b: |8 O - xbase (car ipos)6 r; r4 K% w! E V4 g5 j0 _& m
- ybase (cadr ipos)
0 Z9 Y' [; E; A8 H) w/ Q - zbase (caddr ipos)* ^1 a4 B% V9 K
- en2 (entnext ename) ; First Attribute
4 Q% X; |* \4 x {" ?9 ` - )3 U! o2 N4 O( z% [3 V! z# P _
- : T, e6 T% E ] C9 r
- ; If the Block is rotated, temporarily un-rotate it, along
: c" _$ q3 [( Z; m/ f7 g - ; with all its Attributes, so the scaling/translation of the9 x9 W/ Z) G& K! I1 z
- ; Attributes won't have to take the Block rotation into account.
" ?2 Y1 ~( |$ R' d# A - (if (/= old_rot 0.0)
( B& I- K% ^7 Z b - (progn
# P: E9 l, m- y% `: p" |& k F - (command "_rotate" ename "" pt1 (ai_angtos (- old_rot)))& Y. g4 v. z- s! ?
- (setq old_rot 0.0) N# o& X1 o7 a) R" M* ~+ r
- elist (subst (cons 50 0.0) (assoc 50 elist) elist)
$ B8 A9 i% E( }! s3 u - )
6 d0 D+ g8 N) U$ H - )
" _. x1 L# ~& |# T& Q - )/ w4 I+ x5 B1 V$ _) m
- t5 [% o, l0 z- (while en2( g, Q( q3 _7 f' q
- (setq el (entget en2))
. Q0 ~. Z$ X) _2 p, Q+ j - (if (= (cdr (assoc 0 el)) "ATTRIB")
) f s- u# N5 e% t0 { - (progn
! _, u( b; n! J - (setq old_hgt (cdr (assoc 40 el)) ; Height
5 a ]5 J( e/ }% Q. | - old_wid (cdr (assoc 41 el)) ; Width-factor- P: t' y4 _% N' u4 c! i
- oldp1 (cdr (assoc 10 el)) ; Generation start point
9 D- T& P C" [! b) X9 v - oldp2 (cdr (assoc 11 el)) ; Optional alignment pt
1 w4 e" |4 ~+ e4 `8 O4 n - ha (cdr (assoc 72 el)) ; Horizontal alignment
; Y" H$ F+ o9 ~4 v/ A: |8 g9 p - va (cdr (assoc 74 el)) ; Vertical alignment: j1 F/ A' E4 ]! {$ i) N5 k, W, M
1 f! c( `5 \ d- ; Translate gen. start point
1 P! Y* u& c: C/ C6 W1 } ` - p1 (list (+ xbase (* xdelta (- (car oldp1) xbase)))! ^' _( }" \" J" ^8 A
- (+ ybase (* ydelta (- (cadr oldp1) ybase)))
& o* w0 G2 P3 h4 k% v" q& N - (+ zbase (* zdelta (- (caddr oldp1) zbase)))) T& c0 R: _" G$ E" j$ r+ \8 _2 A
- )
; t# U7 s/ F6 ^1 F Y8 d - el (subst (cons 10 p1) (assoc 10 el) el)
" Z4 J4 G d( n _, n# H - )
6 C2 A% g0 P& R: _+ ?8 ` - & c/ r8 T \5 G5 p5 U
- ; Translate alignment pt similarly, if present and applicable5 Q) f Q }7 l: Y/ |! W/ {; Q4 U
- (if (and oldp2 (or (/= ha 0)* ^, a: G5 ^7 m, E# q s4 x$ Z
- (/= va 0)6 b& `7 V' P" g* K5 E5 f
- )# C; b% I1 s8 d, ^, ?' @3 N+ w
- )# c8 F. o2 Y" ?6 _( z/ T
- (setq p2 (list (+ xbase (* xdelta (- (car oldp2) xbase)))* A9 s% ?, S0 V4 p X9 H
- (+ ybase (* ydelta (- (cadr oldp2) ybase)))
. p4 n/ E& B; O& i" f7 D( E) ~ - (+ zbase (* zdelta (- (caddr oldp2) zbase))). x: U, ~. Y( }) i! q5 D2 Q
- )) F. e5 J7 I$ b7 n! V5 }* O- `1 ]0 L5 I
- el (subst (cons 11 p2) (assoc 11 el) el)
1 Y# v0 C h1 S9 s/ [ - )/ ~8 Z' `) R) L
- ); I, g$ k. ?5 Y3 c6 Y1 h
0 o4 j7 p2 z1 n. \; z2 T- Q- ; Each Attribute's height and width-factor were computed8 n$ A( N" X! X. Q0 p
- ; based on the Block's scale factors. Adjust them now,, V8 o# b; w8 I0 x7 l4 r
- ; by first reducing to values for 1x1 scale...
) X# x" x/ c/ D - (setq new_hgt (/ old_hgt (cadr old_scale))
# h8 u) s, {: j - new_wid (/ old_wid (/ (car old_scale) (cadr old_scale)))! T M6 f; {1 H: y- P
- )% L) ]6 `2 S7 e5 z- ?
- ; ...and then rescaling.
: p* X/ `! H5 \! c - (setq new_hgt (* new_hgt yscale)% W# w, s% j1 b- h7 h! p- o
- new_wid (* new_wid (/ xscale yscale))
# a- s5 C, z# s3 r- o1 `* D - )+ i1 ? d: U% ]0 Y- H1 @* X. N9 s
- (if (/= new_hgt old_hgt)
2 U+ p- v$ i" @9 W - (setq el (subst (cons 40 new_hgt) (assoc 40 el) el))" @, `. N2 o" }- o6 ^- T: [6 i
- )
{6 E3 e: H: b, l. q - (if (/= new_wid old_wid)
' A9 l+ e8 t" g* \- | - (setq el (subst (cons 41 new_wid) (assoc 41 el) el))
) P" H' N) J$ V3 y1 j& j - )
8 b6 q3 M$ C3 P8 c) N8 F: g - (entmod el)
# V8 Y+ u" H2 L7 U. S - (setq attr T ; At least one Attribute modified
" a. M0 F) B2 g! R0 o; C - en2 (entnext en2) ; Next Attribute
' S" J9 a6 }5 i+ X - )8 `: y( e5 Z4 N; {
- )
6 P% s0 e" s* Y* f - (setq en2 nil) ; No more attributes1 a/ e0 T1 R/ J. R# B. t+ }- n
- )
# D! v& ^- _$ V2 V5 q* l - )2 |4 ^1 g1 h5 q3 W- z s
- )1 z* v4 c& j3 n3 b8 L2 Q
- )
7 g8 H! a$ F4 M8 ]
, V" ]" s' B3 G8 S( Y7 O/ U* i' n- (setq pt1 (list x1 y1 z1))
# `, F$ g* y! \- {! C. \! `( u" I' I - (tempmod xscale 41 nil)
. P; o1 W4 ~* L/ L2 G1 o$ r8 Q - (tempmod yscale 42 nil)
( |- X, _+ M* m0 F1 P7 y, i2 L - (tempmod zscale 43 nil)
# x, |) U {7 {$ p0 M% E$ R - (tempmod col-sp 44 nil)8 b8 C6 N9 W T% g
- (tempmod row-sp 45 nil)
9 T* c% L7 P( I' A - (tempmod columns 70 nil). O# k6 S# }: ?) S( p
- (tempmod rows 71 nil)
( J: T7 R5 y; e6 ] - (if (= xclipmode nil)
+ U7 m% r7 m# J2 e6 R% F - (entmod elist)4 h7 K4 O) B3 K* J
- (setq xclipmode nil)
9 X. o0 @; g8 ^& q. ] - )
+ z2 [$ ^8 E- ^ J* H+ u - (move_pt1 1)$ {' k. z, t& m5 a% P
- 0 B: h Y9 v: F4 j( V5 E
- ;; Now do the rotation with the ROTATE command.3 J# o C2 f# U4 {
- (if (/= old_rot rot)
/ Z1 a! X, |; y8 h5 P4 V3 ~4 }4 f - (command "_rotate" ename "" pt1 (ai_angtos (- rot old_rot)))! M7 I6 g5 y- G
- (if attr ; Else, if attributes were modified,
( o& E! i/ r1 f! r - (entupd ename) ; just regen to force attrib display9 M8 F' C& Z! x' a8 ?5 m" u* h3 ]
- ); z& [/ b9 {6 m" L! _; a
- )
7 a$ D# k6 U/ |: _ - (setq elist (entget ename))
* ~; G Y9 ~6 z; Q* W, j - ). C! J) t+ J2 i7 M6 B
- (defun ddblock (/ temp temp_xclip newhatch blkname blklist blktype program xrefpath)
: B' Y2 j5 A1 B% V3 Y - (setq newhatch 0); Z# s0 S, H' z4 ^( N
- (setq blkname (cdr (assoc 2 elist)))
; `- s# q' n c9 ]0 s- A/ ` - (setq blklist (tblsearch "block" blkname))* J, V e! M# q( c( \' b" q
- (setq blktype (cdr (assoc 70 blklist)))
! H* J4 J3 t4 X7 Z7 i- x - (setq xcliponoff 0)1 ]0 I/ M/ d$ n: A% D0 ^. ^1 `/ e* l
- (if (or (= blktype 0)(= blktype 36))5 R( k% c* ^; l5 M+ U
- (progn
, ~2 W$ a: S0 K; e% ~ - (setq xcliponoff (xclipon elist)), K q' G. B" K& @. e' T# `
- (setq temp_xclip xcliponoff)6 R7 ?: y: L P6 i( r! s
- )% k9 B% \2 P! N# q6 Y' p7 L
- )! n$ V E7 Z6 l0 Y O/ v, A
- (if (= (logand blktype 4) 4)
) e% @2 ?* W' `: a - (progn
- i% K8 K# d% J - (setq xrefpath (cdr (assoc 1 blklist)))3 p( y- ~2 z. l7 c/ P' t2 q
- (setq help_entry "modify_External_Reference_dialog")1 L6 B2 h; r; a
- (if (not (new_dialog "ddxref" dcl_id)) (exit))
?/ n1 H* v7 W0 { - (set_tile "Bl_name" blkname)2 Y2 f2 U# A$ n# i6 s' Y- O* Z4 O
- (set_tile "path" xrefpath)
7 ]: a. O8 q+ o2 j. `, j - )' V7 p \* g( g i- y- Q
- (progn
" \& @3 B% W9 k7 n4 b$ w4 i3 N - ;; Get program name for use as Xdata app name
! q+ M& U: X+ X5 M- a) Z6 M b6 t - (if (not (setq program (getvar "program")))& _, k9 ~+ l2 x' b
- (setq program "acad")
+ ]: @4 I; K' G - )! B/ M4 Z B3 Q1 \! k: `1 C
- (if (and (setq temp (assoc -3 (entget ename (list program))))
& K) y" @; B0 Y' F [ - (= (cdr (assoc 1000 (cdadr temp))) "HATCH")
% m: X; X% n9 { d5 i' |# M* @ - (assoc 1005 (cdadr temp))% a6 t9 M9 w U- c" v# n
- )( H. W$ n" N( D4 z9 N2 g s
- (progn
- X! O3 O6 T( f0 T2 k; t0 l - (setq newhatch 1)
& v, `, A; o; d - (setq help_entry "modify_Hatch_dialog")$ F3 T- w. o! H4 L$ E" G( y$ X* I
- ;;; convert the object into a new hatch/ ]$ W" m+ ^! H/ E( Z
- (ai_undo_on) ;; enable undo
7 J+ u. Y8 }( Q' K1 u, J+ j - (COMMAND "_.UNDO" "_Mark")) y& c/ E$ n2 k/ q9 J( W/ I
- (COMMAND "_.CONVERT" "_Hatch" "_Select" (cdr (assoc -1 elist)) "")! ^1 \: ?9 J% h7 k% L( g
- ;;; suppress nasty message from convert command5 L- l6 X. Q" w% z0 J1 f0 C) {8 s
- (princ "\r \r")6 d; i$ I* } E" o0 `1 e7 b' x
- (setq elist (entget (setq ename (cdr (assoc -1 elist)))))
* { c2 _$ e4 S( p+ S. @ - (setq old-elist elist)) Q) j/ X W1 R4 k( I; p- L
- ;;; If we have cancelled ddmodify
0 x! F5 b" x8 ` - (if (not (ddnewhatch)) ;;; (ddnewhatch) returns nil for Cancel or T for Ok
) d6 [* I- J/ Y3 x6 T* L6 p2 N+ S - (command "_.UNDO" "_Back")
7 x4 L& e( k" C& C( g9 Q+ t0 @ - )) ?" s l: K* m- C/ R5 A) L* ]5 o
- (ai_undo_off) ;; restore undo state
$ e- z/ ?. f9 Z: i - )2 v( y6 ], H- r6 {8 C1 @: h8 w. a
- (progn
' X. S m0 \4 J% R# f8 y: W5 g - (if (not (new_dialog "ddblock" dcl_id)) (exit))6 q% @& `! [; w( R2 b6 M1 w& y" \
- (if ( = "*" (substr blkname 1 1))) h; d5 Y& ?+ i, d( P! ^+ Q( L! j* W
- (set_tile "Bl_name" (strcat blkname " - Anonymous block"))
- ^. F8 ?# `+ C7 ~5 Y - (set_tile "Bl_name" blkname)
! Y$ U ^4 h Y - )
2 v- C$ ?8 ^; D* b7 [' Q - (setq help_entry "modify_Block_Insertion_dialog")3 H- T1 n; F( i6 o! ^+ V
- )
1 a& ?& h3 W. R2 y( C# P - )
7 U& e9 k X. w, n5 J - )1 m4 a& d5 _. D: p7 m
- )
% X/ I+ X) Q; i9 a0 Z3 d3 ^0 P; Y - (if (= newhatch 0)$ W; U# S9 z! w, X
- (progn. M% u1 K* t" K, a
- (set_tile_props)
2 t+ f) p& ~9 H/ A; h0 s- ? - (set_tile_handle)
" Q' ^: Z! C# |: T7 q - (set_tile_pt1 1)
) j! _4 S$ ~5 x- n) Z7 b3 F - (set_tile_rot)
" P; b% N; S- D# n; B! F4 R - (set_tile_scale): x# C% I0 _2 x( b
- (set_tile_rc), x7 |, c$ y7 }6 V
- (if (= (logand blktype 1) 1)$ o* a/ ]8 ]# a5 D( {
- (progn! M) e; }, k1 L/ X
- (mode_tile "xscale" 1)
: p3 n3 @" Y/ h8 b$ l# K' ^ - (mode_tile "yscale" 1)
" ^4 s# e" K' x$ ]7 _& M3 ? - (mode_tile "zscale" 1) S& y( W! ~& g1 h% Q, q4 l( h
- (mode_tile "rot" 1)7 L! i+ S3 M5 d8 M' i
- (mode_tile "columns" 1)0 f0 ]$ s, R3 P, l& g" A4 x
- (mode_tile "rows" 1)
. j8 ~2 j3 K2 n& W, W- _ - (mode_tile "col_sp" 1): d5 U! y* ~$ U. ?! g0 G) ]
- (mode_tile "row_sp" 1)) K; f/ \# |$ V" v8 h
- )
& y& R6 L) e4 t, l# q - )# w9 D1 G1 z" E* d
- ;; Define action for tiles
- \. ?0 `% `/ c) o' w4 C% f - (set_action_tiles)/ H- C4 O, y; m# v9 O7 \) ?7 t/ C; W
- (setq dialog-state (start_dialog))
2 W0 _5 @3 n9 Q; [- L& T. B& y - (cond$ A/ {) a; y0 r" Q! s
- ( (eq dialog-state 0)& o' \9 Y8 G0 `* P" T3 M
- (setq pt1 (trans (cdr (assoc 10 old-elist)) ename 1))
; r+ |" D* {3 B, ?/ K& u6 e5 M7 @6 x - (move_pt1 1)# `! P( ^- Y5 A' X* m. ?5 M
- (reset))
5 E! |3 D" ^$ q; b5 v5 ?( V - ( (eq dialog-state 1)
' J; |1 L4 C0 K - (if (and (/= temp_xclip xcliponoff) (or (= blktype 0)(= blktype 36))) M) b& p1 b9 b- s8 y" E( x
- (xclip), A5 ^ W7 H: T+ ]7 |
- )8 |0 O {6 q8 `$ p
- (modify_block)); K, J; _. ]5 J) Z* Q8 X& F
- ( (eq dialog-state 3). J; A. m9 X1 ^* {" O! J
- (modify_block). m) n, W# A; K: ]
- (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))
) l+ ]7 y! j9 c3 }- G# q - (move_pt1 1)
2 d4 C6 V) A S7 X# u# | - (ddblock))
- P' m, ^) N8 z9 l/ r1 _ - ( (eq dialog-state 4): h) B) M, V. B$ h) j5 V- i, z4 r7 P+ G
- (modify_block)
7 ^% n( b* P) T% L2 d - ;; Get current handle.' C# {4 @: \* d, b
- (setq hand (cdr (assoc 5 elist)))" C \) I3 k" M- n+ w
- (command "_hatchedit" ename); R! B/ q1 T9 L# @. i) \. R" K
- ;; If OK in hatchedit, a *new* entity is created and the old one
; M t: A# U& Y, w# T( ]9 K - ;; is deleted. So if the old one exists, it must have been a
# a, c6 F! s4 I8 }& X3 `9 T& a - ;; so rest the entity.
, T- N" A* y) H - (if (entget (handent hand)) (reset))
8 F# c* E8 S+ {7 L( V4 `6 k - )% h7 |2 w0 a1 V% Y3 c& m) ?
- )
4 g+ v( q# V4 Z/ b+ p4 N0 U - )
9 R& V$ q. d L. F7 n0 t4 `9 X - )0 `" P* q. }. Y) P+ c! G% Z
- )
5 c' p& P) o! u3 Z- T - ;;
9 _- D8 W( g$ h6 a L - ;; Modify SHAPE% b! y2 {0 U0 x, H
- ;;
& Y9 k; ~4 G+ F - (defun modify_shape ()) @$ {: Z- I+ G# A8 e3 K0 h
- (modify_properties)
( F8 f' W+ | x" ?# A - (setq pt1 (list x1 y1 z1))! i1 i) N, I/ k2 p' I: G4 m
- (tempmod pt1 10 1)
6 O9 b, j; n- |: _1 P5 ~- X; a - (tempmod hght 40 nil)# d5 U. ]" r, t5 z
- (tempmod wid 41 nil)
1 [+ X0 }$ ^( h# V& y* n - (tempmod rot 50 nil)/ b9 ], B2 o* l4 s, ^. F
- (tempmod obl 51 nil)
1 a1 A7 W7 E$ W - (entmod elist)
5 e7 _) }/ d9 \ V$ J& I6 X% u* R - )! y4 [ {$ P7 l$ h: t G4 G4 s
- ) H1 V# g: `% b7 r
- (defun ddshape ()
0 u7 X! S1 q( \ - (if (not (new_dialog "ddshape" dcl_id)) (exit))
, x" A3 M0 R$ ^: ~" G$ I1 S - (set_tile_props)
; {* [5 t$ \3 @' j6 S - (set_tile_handle)
( |! \0 O- J5 u9 B, S$ z0 K! { h b - (set_tile_pt1 1)( x+ X3 z) S7 i5 p
- (set_tile_rot)
( c. Q, A" n5 L7 o& n - (set_tile_hght)' ~' h, { K! W2 _
- (set_tile_wid)2 {, H3 P/ Z1 B, h
- (set_tile_obl)3 Z/ z1 P7 `3 W3 z
- (set_tile "sh_name" (cdr (assoc 2 elist)))
8 M* R* j0 |0 i% H$ ? - ;; Define action for tiles8 W* j% G; U1 G6 i. V
- (set_action_tiles)8 I7 i# u7 R, q5 c
- (setq dialog-state (start_dialog))( r* A; d" V5 @* S" D
- (if (= dialog-state 0)
. K2 X6 i8 z8 C3 O5 l( e - (reset)
2 j; W: z# v; L% \2 `# F - ) d5 c& R7 k! W' G( o* \. @7 C
- (if (= dialog-state 1)
0 `6 {5 ]) ^' B0 H' v$ |+ M# H - (modify_shape)
/ ^* ?( }2 M5 ~8 L R+ D+ Z+ | - )& H4 I. ^( M' Z
- (if (= dialog-state 3)$ x+ _; f4 a& M$ d. Z
- (progn
8 R5 S' t6 D$ u" B4 { - (modify_shape)
0 h+ [3 {: Q5 Z5 s8 Z3 B - (setq pt1 (getpoint (list x1 y1 z1) "\nInsertion point: "))- P, s# \/ C0 i& }1 k6 [! @
- (ver_pt1 1)7 U, w) E4 y3 k/ j% d* p
- (ddshape): r: ^" o/ ] W. H
- ); C, Y! J7 X! d' V
- )
$ {" k. ^& M1 _8 V( O/ s$ Y - )8 J* c: p. Y8 Y
- ;;
7 w; I/ V K1 S: A. R! V+ V" q - ;; Modify TEXT or ATTDEF
* B& F# Z1 n9 p3 i% T, F - ;;* j1 ?1 G2 M" B: E4 Z5 t" k
- ;; Set bit code for upside-down and backwards setting
2 {1 I3 D$ m9 f% u. I1 J - ;;
9 o. G0 ~: G( _ y& s - (defun code_71 ()
; J9 @* n' V7 ~. }3 s - (cond ((and (= bkwd "0") (= upsd "0")) 0)
}$ c" x0 L! |7 @. s$ X - ((and (= bkwd "1") (= upsd "0")) 2)" P( {" |6 ]/ G0 B- a" C" v
- ((and (= bkwd "0") (= upsd "1")) 4)5 ^9 h9 f2 b5 O. `
- ((and (= bkwd "1") (= upsd "1")) 6)& [: n' C I! W
- ), H7 n" ?- u" U+ O, f d4 Z5 C
- )2 P: o6 p) d% r2 N' T* U) H
- ;;& ~. S' v3 O: a! f
- ;; Style action. Reset widget values to style defaults
9 Y# V% ~3 b7 c8 @. g - ;;
4 [) V* l8 P1 \' _0 Q4 L - (defun style_act (index / style-list)
. A/ F5 ^4 L5 H! ~- H1 Q - (setq style-idx (atoi index))
" f/ _% [2 A/ i - (setq tstyle (nth style-idx slist))/ ~' Y8 g" f9 K/ @' J4 `" t
- (setq style-idx (itoa style-idx))/ o8 U$ p3 X$ H. i" N% V9 E- n
- (set_tile "style" style-idx)
4 J+ x- G! {. `- f) ]3 f - (setq style-list (tblsearch "style" tstyle)). N! `# u) p+ }7 d9 \$ w( R
- (setq shght (cdr (assoc 40 style-list)))
$ B0 m! W7 b6 o- C' v2 k - (if (/= shght 0)
3 ~3 {7 H8 c) x0 H1 p! O; [ - (progn
- P' @; f" l. F3 g; P - (setq hght shght)' P: x1 n3 r; J. P* X
- (set_tile "hght" (ai_rtos hght))
! V. g0 x6 J$ {7 }4 }3 q - )
$ Q" }$ O& U$ x) } - )
- i3 k7 e# A' j% \# [4 t - (setq wid (cdr (assoc 41 style-list)))
m, g7 E2 D! A - (set_tile "wid" (ai_rtos wid))
1 m( g" W( l& T6 U - (setq obl (cdr (assoc 50 style-list)))
$ [5 r: y; h! A$ W - (set_tile "obl" (ai_angtos obl))
* c* I0 [: \2 W2 X+ U$ J) S - (setq bk-up (cdr (assoc 71 style-list)))6 ^7 ^; v# }' n) \4 }3 y- }
- (if (= (logand bk-up 2) 2); i* M' }' ?/ H1 O* {
- (set_tile "bkwd" (itoa (setq bkwd 1)))
- \& D3 ]. y* V - (set_tile "bkwd" (itoa (setq bkwd 0)))
* W% }2 u) h7 P- p9 }2 O3 k - )
/ Q4 I6 w: c" F0 e - (if (= (logand bk-up 4) 4)# I; |4 V; u1 A+ M7 b
- (set_tile "upsd" (itoa (setq upsd 1)))2 c7 S0 k1 H0 w
- (set_tile "upsd" (itoa (setq upsd 0)))
, j/ |8 h4 C1 e# f - )8 e* S5 c. U0 h5 A$ D
- )9 f4 {/ `3 N F8 r0 C7 I2 }
- ;;5 W9 _9 T, k' _- o" b: z2 D
- ;; Justification action. Set vertical and horizontal alignment variables,
# x3 d# E" [5 X: @3 N! i# P - ;; grey out rotation and height if alignment = "aligned", grey out rotation5 ?2 X. J' B' F, s/ |1 j4 g! i. X
- ;; if alignment = "fit".0 H5 X# O; }" F: b
- ;;
* x( I2 ^( } x3 @( w - (defun jlist_act (index / templist)5 ^; o4 h% h% A, X Z) X
- (setq just-idx (atoi index))
) R9 V3 A+ s# u, _: f: B - (cond1 T- T. _6 o7 d/ e- @ I- N( d, Y
- ((= just-idx 0) (setq va 0 ha 0)) o% r: A8 P2 A9 z* s4 A
- ((= just-idx 1) (setq va 0 ha 1))2 Q+ c5 S5 N* t- f! H- y
- ((= just-idx 2) (setq va 0 ha 2))
- O; W+ ?0 n+ S3 Y% `0 H4 Z - ((= just-idx 3) (setq va 0 ha 3))
' p! p) N& X6 J7 @& j - ((= just-idx 4) (setq va 0 ha 4))5 D) c8 Q) D2 @7 ?& H6 m* B
- ((= just-idx 5) (setq va 0 ha 5))
: N5 {0 g! j2 I5 v8 e, w - ((= just-idx 6) (setq va 3 ha 0)); H$ A3 V9 D% g6 Y- b6 \# M5 F
- ((= just-idx 7) (setq va 3 ha 1))
8 A4 k4 I2 q7 ]3 H$ ] - ((= just-idx 8) (setq va 3 ha 2))
& m3 r+ y( ~: V6 N1 B8 B, F$ P7 l - ((= just-idx 9) (setq va 2 ha 0))
% w2 L" B$ {* s7 y8 V# @% k' h- K - ((= just-idx 10) (setq va 2 ha 1))
) B( S* \( b$ z2 U - ((= just-idx 11) (setq va 2 ha 2))7 y) L/ S& k5 _- Q
- ((= just-idx 12) (setq va 1 ha 0))
2 W" c$ A) e. ^- W - ((= just-idx 13) (setq va 1 ha 1))$ ~! y. p# X5 O) Y) R0 f
- ((= just-idx 14) (setq va 1 ha 2))
9 {6 W5 u/ r! B" o& e- \& l) W! m( e, B9 _ - )
2 R. |8 u* u6 m* W - (if (or (= ha 3) (= ha 5)) ; If Aligned or Fit text
- _, y& B) Z+ F# Y2 N3 H8 O- e - (mode_tile "rot" 1)
3 X( Z" [3 h' V9 R3 S - (mode_tile "rot" 0)4 ~* B& ]( X) y: z; }4 m0 f8 h
- )% u, q7 F8 D# ?$ H* C0 x
- (if (= ha 3) ; If Aligned text( H1 w$ q. p3 m8 G( j0 \2 q
- (mode_tile "hght" 1)
# u& A$ C- p+ y6 E+ Y! ] - (mode_tile "hght" 0)
, }* b! I7 T& ~6 a7 c9 n, y# x - )
e" X0 |3 H" X - (if (= ha 5) ; If Fit text- c. Y8 v4 G# v* o
- (mode_tile "wid" 1), R- S6 H* z" w$ F% [5 d) C D
- (mode_tile "wid" 0)5 `5 v [! ^# a: [( y
- )% e0 |; A8 D1 U5 j
- ;; Reset rotation and height if changing from aligned.
$ D9 E( q/ G0 ^+ ~ - (if (and (= ha-prev 3) (/= ha 3))
6 L) Z5 I& W. V9 r8 C1 Z; |9 m - (progn1 }: }8 Q% `; X/ n( C/ b) h2 w \
- (set_tile "rot" (ai_angtos (setq rot 0.0)))
) b# m0 e+ h i, ? - (set_tile "hght" (ai_rtos (setq hght 1.0)))
7 g e$ R+ g1 j5 o8 @ - )
9 T( Q2 L/ O) s" G - )
7 }) v+ P5 {1 P: o - ) g8 p# R5 K, m
- ;; Reset rotation and width if changing from fit.3 V' t) ~0 |' ?6 q
- (if (and (= ha-prev 5) (/= ha 5))% J4 \4 w3 i5 u$ X- E! x
- (progn
0 x- |2 q) M, x; c9 e$ S# S - (set_tile "rot" (ai_angtos (setq rot 0.0)))
1 `0 g# `6 m0 K& C o - (set_tile "wid" (ai_rtos (setq wid 1.0)))
4 E/ o: r: E9 W8 m) q& k - )
) l8 a/ D0 O' }" u8 d2 d) I: W- {. n - )' Q6 f8 {6 s( Z) C
- 8 T4 r# a! q6 `9 D n
- (setq ha-prev ha) ; update ha-prev for next time! @; K; P* ^8 I) W# E
- (setq just-idx (itoa just-idx))
; ?2 B, ^+ I; Z - )
4 b- B ?; c4 ~. _) [ - ;;. @6 g) Q7 O8 j3 Y& ^* ?3 ]3 x
- ;; Set intitial alignment setting based on vertical and horizontal alignment
+ A' {0 v9 b! X; N8 h- V8 j, h0 ? - ;; bit codes.: s+ X) t/ w& u+ ^4 ?
- ;;6 x0 X+ j6 @3 n3 _, P
- (defun set_just_idx (); z/ j* V" U8 l
- (cond
) o; V$ V: O; g - ((= ha 0) ; Horiz alignment = Left
% h5 r) ? D$ c* r - (cond4 @# G# v/ @3 M, |/ q
- ((= va 0) (setq just-idx "0"))
$ h; M. N. x7 B, x0 p) Q3 s - ((= va 1) (setq just-idx "12"))/ j+ w0 T2 H, C" E
- ((= va 2) (setq just-idx "9"))
: A- y. L6 r; C& A - ((= va 3) (setq just-idx "6"))
* B. A3 Q! v: P! f' Y9 U - )6 O, j v5 j# F4 k/ _
- )
; ^' D: }5 o3 j1 E$ M - ((= ha 1) ; Horiz alignment = Center* R% f; C# T# I9 V$ r
- (cond
$ m5 y# [* D/ J' W8 d6 e - ((= va 0) (setq just-idx "1"))
, K ?% G' m4 N4 D/ K7 p - ((= va 1) (setq just-idx "13"))
) F, M; Z# x3 d8 U2 a9 D8 P& n1 D C - ((= va 2) (setq just-idx "10")); z3 I# x3 g- \8 P2 A4 w
- ((= va 3) (setq just-idx "7"))0 H. d, G; Z5 Z7 p
- )7 V0 Y9 K6 y) N- `8 L3 U5 x; P0 K
- )! A8 b9 h3 e/ I& O% @" {
- ((= ha 2) ; Horiz alignment = Right! W( o0 x+ _7 f% Z6 Y% ?
- (cond
( R+ h+ q, i% V& n7 c( Y5 Q - ((= va 0) (setq just-idx "2"))
$ v( Q" N# @2 d+ A" v/ g - ((= va 1) (setq just-idx "14"))
: N: q3 F& s1 ~( Y! { - ((= va 2) (setq just-idx "11"))
8 b; X& ~# ] S9 R; _. K! p" U q - ((= va 3) (setq just-idx "8"))
( f" _% r' {, Y- Y( j - )
, P' T: [8 Y8 c1 u3 W; p - )2 A1 m2 {5 [- W) u$ E- A
- ((= ha 3) (setq just-idx "3")) ; Aligned2 R2 k5 O) c* Y5 c* a/ J# j
- ((= ha 4) (setq just-idx "4")) ; Middle; u7 L3 m5 m; c/ e
- ((= ha 5) (setq just-idx "5")) ; Fit
6 J7 R5 U# n" ]5 m - (T (setq just-idx "0"))% g, y: |: A1 m9 c
- )% h" D, P; o ?1 y& o# K) y
- just-idx
( g' n( i4 C/ s' z y, S+ L; ]7 b - )
4 H5 h' h3 b8 K
1 [7 x. e- ]/ s y/ g4 W8 K- (defun modify_text ()4 q( A$ m0 H, f5 S0 n9 }
- ;; insertion point
+ U8 o6 M1 |% G0 ?$ D - (setq showpt (list x1 y1 z1))1 }$ x# D( r1 D1 V. x6 [) f4 [
- (setq bit-10 (trans showpt 1 ename)). x+ a+ R' n& _. V- i, C4 u
- ;; alignment point
! ^1 P. `& Y* e }+ R - ;; for 'Aligned' or 'Fit', alignment point must be different
$ Z" \: z1 s6 D - ;; for all others, use insertion point
* ^# C6 r6 [3 b3 e! X: X - ;; (ACAD will recompute insertion point)4 n, y( s. O( } o/ X8 i( N
- (if (or (= ha 3) (= ha 5))
- ]1 k+ g# V8 n0 G7 ~. X - (progn: c: L" @% @% I0 R
- ;; if no alignment point, fabricate one- q7 @ A2 z, a) O0 s9 G4 }+ Z
- (if (not alipt)
5 }+ s2 E# d+ `# z - ;; add text width to insertion point
/ s) F7 E" N" } - (setq alipt
3 T; Q2 S8 N+ [, @( n5 Z" P - (list (+ (car showpt) (car (cadr (textbox elist))))
5 s, t% M5 D; r4 [; R - (cadr showpt)! P% |: ^# P# u; |1 z, \1 M$ j5 I
- (caddr showpt)6 @' G8 C" @4 z- g& Q. \
- )
6 i$ W1 E+ x/ i% w5 H) {! U- X" b - ), P/ C8 n q, A, Y# @, M7 W
- )+ v1 b/ _" O: H
- (setq bit-11 (trans alipt 1 ename))2 E- N" V- T r: n3 I
- )
, n J& U: A( ~7 d, C - (setq bit-11 bit-10)
7 N3 A* e8 `. c$ o - )
1 v( W& s5 p! l5 J - (modify_properties)
7 b c- x: _/ d; o- v - (tempmod tstyle 7 nil)
0 N# m o; o2 E! O - (tempmod bit-10 10 nil)) ]! q1 I2 I( y& z( Y+ i
- (tempmod bit-11 11 nil)2 I3 T" t& }; t0 ?1 o/ k
- (tempmod text 1 nil)/ C* `$ U! n( a4 u2 F9 m4 |
- (tempmod hght 40 nil)
2 t1 t4 L& s) W" X - (tempmod wid 41 nil): G u; p) R! B A
- (tempmod rot 50 nil)
& V. U2 [. B* a! a - (tempmod obl 51 nil)
, m# A4 U1 }9 l' w% \. g( ?3 Z - (setq bk-up (+ (* bkwd 2) (* upsd 4)))
) Z( r( D' ^, d9 g) }& G9 U- f - (tempmod bk-up 71 nil)
" Z( P9 I! f' T* y2 ?$ F - (tempmod ha 72 nil)9 U& G" ]* Z) }6 N$ ]4 Z, r5 h
- ;; Attdefs use 74, text 73
$ j) I+ m' h9 |7 _* R8 r8 n - (if (= etype "ATTDEF")8 J$ g: T+ ]( _+ N, Y3 f; `
- (progn
3 `1 c4 l8 A. r& L - (tempmod attag 2 nil)
+ L8 ]9 s; {9 ~/ y4 I- y - (tempmod atprompt 3 nil)# c' [7 E) i4 z; B. S- I" ~% n
- (setq icvp (+ inv (* 2 con) (* 4 vfy) (* 8 pre)))
0 V8 h* E" |& q4 p( N \4 z& ^, N7 \ - (tempmod icvp 70 nil)
1 d2 L4 k5 I1 |0 m) | - (tempmod va 74 nil)/ O5 L; O& t& \
- )
4 l9 x# u8 m, S( ? - (tempmod va 73 nil)
3 V7 d( ^2 s2 |; y) w3 Z3 x& O - )! M0 a! J8 l# I* x
- (entmod elist)
! f& \ L3 J2 N1 }9 w0 p$ D - )2 |6 e- @3 F. d4 p @
- 9 }7 D( I8 y' e. T3 ]$ Q
- (defun ddtext (/ 2ndpt slist i)
* E* v- u" g% j8 L+ r9 [ ` - (if (= etype "TEXT"); n1 U/ e0 M: K; `2 t- w4 e0 }
- (if (not (new_dialog "ddtext" dcl_id)) (exit))
# V- O) }) G1 g1 K5 s- `% ? - (if (not (new_dialog "ddattdef" dcl_id)) (exit))
3 K0 w8 F) M5 O# A9 ]+ L - )
7 s2 l+ ^; X3 A - (set_tile_props)
, [4 q6 P& U# q, ], u4 g' F l# X5 X - (set_tile_handle)8 T7 A' B3 G% J# j+ i# r+ t
- (set_tile_text)9 o+ L4 S& i; M) a& S9 o
- (set_tile_tag)
8 C: ]* Q% Y0 U* u7 H - (set_tile_prompt)* V/ f; A$ h" x/ |" M+ n4 z
- (set_tile_hght), X) q/ ~( i" ^& p1 n+ E( q
- (set_tile_wid)
5 i+ ~ e# O7 O8 }6 |' m0 a - (set_tile_rot)
) `: p& N U5 z! M3 e0 [! |# A2 i - (set_tile_obl)' Q/ p6 V" O; _" L
- (set_tile_bk-up)
- Z) z7 H- ]8 Z& X8 C% Z - (set_tile_icvp)1 A/ _4 ~. P" N8 f
- (set_tile_style)
9 P3 @" o4 `4 _3 q6 {# u - (set_tile_just)
; ^! G, U! [ L - (setq pt1 (trans (cdr (assoc 10 elist)) ename 1))& v4 p! B- P3 a4 L
- (if (not (assoc 11 elist))- @6 }+ f9 _& c4 w* I' J
- (progn (setq pt2 pt1)
- t, x3 d. w* F# k6 o - (setq elist (cons (cons '11 (cdr (assoc 10 elist))) elist ))3 V5 A2 f6 t2 B3 X6 u" ~
- )2 |1 M* F. E0 A% x! Q5 a
- ;;(trans '(0.0 0.0 0.0) ename 1))
* U6 Q# D0 d7 n - (setq pt2 (trans (cdr (assoc 11 elist)) ename 1))" f6 D/ S& j' C
- )# z- |7 x$ _! ^8 r( L" ?- f+ d
- (if (or (and (= ha 0) (= va 0))
# P; v- R; U: o2 p8 C! I* m7 \ - (= ha 3)- P6 F8 H4 v, P8 {
- (= ha 5)! p/ s5 k* k: e) _$ w9 d6 n9 P
- )
f5 ^6 r' o1 V. v x$ c0 s' l - (setq showpt pt1)( t7 q3 K, o5 S' L0 o/ K
- (setq showpt pt2)
4 X7 i9 P7 \' b7 l) d8 B" A; w - )
: r& N; y/ u$ ^- M, [$ d7 Y2 y - (if (or (= ha 3) (= ha 5))6 X9 l& A& j' m% p- M# Z* j
- (setq alipt pt2)
, ]3 p4 m! y2 g - (setq alipt nil)
+ j/ {2 [" W& R/ U0 W$ t - )7 z+ l8 S- g4 o) @
- ! V2 s: f( h6 ?+ T7 x7 v) t- o
- (set_tile "x1_pt" (ai_rtos (setq x1 (car showpt))))& x N5 k) a# a9 F2 f
- (set_tile "y1_pt" (ai_rtos (setq y1 (cadr showpt))))
$ a0 B; t7 q6 D( i% n - (set_tile "z1_pt" (ai_rtos (setq z1 (caddr showpt))))0 K0 ]6 k m7 l
! y# H8 t, N1 E- v, g- ;; Define action for tiles
, n! B6 O p3 O: l: n - (set_action_tiles)+ T5 e0 f; ?/ h8 q# l" b4 }/ n
- ;; Set focus initially to the text edit box.; q7 L1 x- z6 {6 \- H7 f. g! ~
- (if (not i) (progn (mode_tile "t_string" 2)(setq i 1)))5 h* [# U$ v; q) t
- (setq dialog-state (start_dialog))6 o( } ^* v0 ^) `% R! d
- (if (= dialog-state 0)
7 y7 L6 d0 G4 C1 A3 }( B/ H - (reset)7 U1 e* d) d; S. C) g4 ^
- )
5 i4 n: o4 ]" t4 y! Z8 b# _3 O; @ - (if (= dialog-state 1); f6 G# T l' e4 m. v7 n
- (modify_text)
( Y, O2 W- e9 d# y - )# J2 |* u* W' d5 i& q
- (if (= dialog-state 3)- v- E/ r7 Z0 l! c6 V: A/ F
- (progn0 m# Q) d' y* u6 Z4 k
- (modify_text); c7 Z# `. L6 X3 j$ g! J. g
- (if (or (= ha 3) (= ha 5))
# `. w( v! f/ B& u - (progn
5 Q! U! `1 x }; |' v6 {" l; ^7 B - (setq showpt (getpoint (list x1 y1 z1) "\nFirst point: "))
* g" N! h5 M) B- a$ m$ u) s - (if (not showpt)
" F/ l5 Y p3 }. N. ? - (setq showpt (list x1 y1 z1))3 l! ^2 g* M& _$ a- E
- )
Y; F2 M, U9 T8 C9 U - (setq 2ndpt (getpoint showpt "\nSecond point: "))
) `; C6 f' V8 J: m$ `2 ^- U - (if 2ndpt5 Y; [) F& o D0 K) l
- (progn9 K U( g; W1 u
- (setq alipt 2ndpt)
0 b; A8 C* ?% P. v& R" O1 O - (tempmod showpt 10 1)
4 s. j4 T. z O- `7 _$ {; G - (tempmod alipt 11 1)" M* r6 k3 z V% G2 c0 D
- (entmod elist), V! z) ]# x% Y& ]- y
- )
* B" n5 c3 F7 `1 Q - )
: Q! V6 p6 V( `4 ~9 N+ M - (setq elist (entget ename))- Q+ w7 K1 a- x; e" R
- )' o( o7 P& D4 t/ j- i* e
- (progn! q; \9 k: E* K& r( g: S% ~% Q
- (setq showpt (getpoint (list x1 y1 z1) "\nInsertion point: "))5 `: n2 J0 D) a. ^6 l' \* O3 z
- (if showpt$ V a1 ^9 b, {, e1 a- C6 n' ]+ T: L
- (progn% p7 h& ^' S; X4 C) \: s S
- (if (and (= ha 0) (= va 0))# C, [8 l6 S/ E
- (tempmod showpt 10 1)5 T( V' ]0 H L4 r
- (tempmod showpt 11 1)
/ E) ~$ m- N' ], Q T - )$ S0 m( A0 j- u- O. `
- (entmod elist)
' i! E0 W9 d Y) x$ { Y4 f& \ - )( f7 u6 L. u% A/ v h1 c6 W
- (setq showpt (list x1 y1 z1)); {0 w; ]9 ]6 ?- b% @+ m
- )
/ N$ c0 C8 l3 } E4 s - )
* z" C/ K* d, u6 W - )
# J1 X5 r* V0 T" _ - (ddtext)
7 ] _5 L$ X* A$ t - )8 o; [ N9 ~# {/ R4 P% w. Y; a
- )+ E+ K$ e3 l6 H, O
- )
$ o& \' h% E$ w2 k. J) l. w5 \ - * D/ K i% |. r+ \4 _# o
- ;;% Y0 G, h: n) j
- ;; Modify MTEXT3 N- u7 p" g& N7 T6 w s2 O$ B1 m
- ;;0 c$ l3 U F5 W8 ^0 j3 r! G
- (defun modify_mtext ()
4 e( e# X5 @0 ?$ w# J. @ - (modify_properties)
7 g+ L N' L5 V0 o1 u6 n - (setq pt1 (list x1 y1 z1))
$ P/ a2 _0 G% G - (tempmod pt1 10 0)9 D$ Q$ N/ _$ q0 |2 l- S
- (tempmod text 1 nil)
1 F3 t6 a1 y2 d9 A) H! D! n/ ~6 v - (tempmod tstyle 7 nil)+ B+ {+ ]+ [9 Q# M. O' Q! |
- (tempmod just-idx 71 nil)
4 t6 w+ c" v+ z/ ]9 P. l - (cond. C- P6 S% `% q
- ((= dir-idx 0) (setq dir-idx 1))
9 D, O& ^: A# V% e- S: ` - ((= dir-idx 1) (setq dir-idx 3))$ \6 T2 w8 t8 p$ N- o5 P
- ((= dir-idx 2) (setq dir-idx 5))
3 V I/ q/ X5 G1 m& K6 X - (T (setq dir-idx 1))
/ G& I2 P: x1 u+ c; i9 S - )7 [" M" p! Y$ U# k* Z
- (tempmod dir-idx 72 nil)
' b: O- ]9 b$ y8 Q - (tempmod hght 40 nil)' v# I8 N# K1 J9 K' e
- (tempmod wid 41 nil)% e* ~9 p4 V1 {: _) S
- (tempmod rot 50 nil). T4 \! H- H! g3 u- ?
- (entmod elist)
0 G# V9 A( p1 g - )
; P6 p6 P7 L3 W; P9 r* \ - % [0 V+ R5 V) u8 p2 i+ {
- ;; Set MText text style5 W& D7 v/ K- e
- (defun MText_style (index / style-list)
5 B( V) [; D- ^! l8 [) Q2 w - (setq style-idx (atoi index))
/ ?( e/ D! y9 m+ f - (setq tstyle (nth style-idx slist))9 D! N" F" Y" W3 d- @' E. e
- (setq style-idx (itoa style-idx))
& Y d8 @( ~3 Q1 _- X - (set_tile "style" style-idx)
: s$ _% T; t+ E- W# d - (setq style-list (tblsearch "style" tstyle))
) h# y: O& l' d" L7 O( ]" H - (setq shght (cdr (assoc 40 style-list)))$ _# l8 @. Z; R6 R4 O( d
- (if (/= shght 0)
0 b7 H% h& V5 v; W2 y8 ]- u7 s& d- ` - (progn
3 K! A& S' F0 A5 V5 r - (setq hght shght)3 p: X2 I; V. M8 b" @
- (set_tile "hght" (ai_rtos hght))
! M# k8 d$ W. s9 B# Y$ W# l" ^0 v - )7 x. T2 P$ T( [4 s0 d
- )/ I. |( D* S0 E- K4 S7 I& R+ j% Z& }6 K
- )" k! j9 j* A' h. ~
3 ?* v' v7 R: L0 G+ T6 L- ;; Run DDEDIT on given entity, working around possible re-entrancy
! r& ` }" T6 P7 S1 R8 E$ N - ;; problems with MTEXTED/ y. n& A9 X2 m3 `* v! A& z, a
- (defun safe_ddedit (ename / orgMTextEd work)
" O t. o! ]1 H3 a - (setq orgMTextEd (getvar "MTEXTED"))4 Z0 A8 P4 r7 P
- (setq work orgMTextEd)
7 W z0 ?! d$ _' D - (if (= ":" (substr work 1 1))/ X. l3 C9 U7 s1 `6 v' O
- (progn5 ?. p) _6 X/ I7 I7 _" M: c
- (while (and (< 0 (strlen work)) (/= "#" (substr work 1 1)))% R* [6 K. D& `) C0 B) k9 H
- (setq work (substr work 2))7 J5 g4 h' ?1 s0 x' B- t" V
- )
9 x$ m; {8 @$ d7 Q1 l7 Q4 N. E - (if (= "#" (substr work 1 1)) F4 ?3 A# W* }" l; ?, _0 }2 S
- (setq work (substr work 2))
7 V; _' g; y; P, |( L - )
: e+ r. O: T0 `& Q& O; z - (setvar "MTEXTED" work)
% V o1 U( p+ l1 G( o$ n - )/ v; p$ l/ `* g# i5 T" _2 [9 H- q
- )2 P3 Q) ~2 m' Q% Z& |$ P% |, _9 A/ y
- (verify_arxapp_loaded "acmted.arx") ;; make sure it's loaded...+ G6 n5 G: `) ~) }; ^7 i8 _; q/ {6 _
- (command "_DDEDIT" ename "")
! D- f4 w8 }7 l - (setvar "MTEXTED" orgMTextEd)6 z5 N: Y& t1 q$ P
- )# `% Q& E# Q, s3 Z( b& ^' ]8 e
* t; ?9 ` Z, Y( m' S- ;; Verify MText object width
) {: W; G. i: @: \$ \ - (defun ver_MtextWidth (value)
/ @6 N7 p2 P% o7 y! F - (setq value (distof value))$ t' \5 s, Q1 d/ _
- (set_tile "MTextWidth" (ai_rtos value))
' [6 C4 E0 |" ` - (set_tile "error" "")
O* L9 p7 ^- C6 C9 X7 d& r l* w- u - (if (< value 0.0). v. a# W- x, B2 w
- (set_tile "error" "Value must be zero or positive.")+ e: x8 L' X, |! B; s5 i7 ~2 a
- (setq wid value) a1 B5 y% \ S, s
- )
+ {' f( p" E9 S* k4 v ?' E - )0 W8 _$ j' Y) l
- & ~6 l' X4 C9 [) F% ^, U* d
- (defun ddmtext ( / gc3)
: A# F; N7 N) A9 b8 `, w# _0 A - ;; Get dialog
! M) r" q7 N* Y3 q - (if (not (new_dialog "ddmtext" dcl_id)) (exit))- r3 D! h* s5 O) o
% { b2 Y, q6 Y' Q, g0 d8 z- ;; Load list boxes! O0 P$ E: q8 @' g- e7 k
- (start_list "MTextJustify")
- s# ]7 H2 V9 L - (mapcar 'add_list '(
* N9 e' U4 t# E* Z/ t - "Top Left") A- I7 P/ e2 P% g* r
- "Top Center"' S$ E- H" U2 j7 z
- "Top Right"
' I/ f' f' p1 ~/ r) a - "Middle Left"' C' m; k, g: A( d
- "Middle Center"
( o( _) @ b5 v) } - "Middle Right"
0 K, F& ]; |4 b3 Z! A - "Bottom Left"6 p2 w1 w( b4 K7 v* E
- "Bottom Center"
. N* a" E8 m) s6 K4 a - "Bottom Right" N6 G$ q% f" ]6 w: I& |- e s
- )4 \* P( ?" L4 c4 C; W- \
- ), ^- V+ U1 t- S9 ?' H: w! r8 R
- (end_list)( x# T( }7 X" ?0 T
3 Y; ]5 \+ O0 T' O- (start_list "MTextDirection")& J$ O6 v. C; N; }. l! e# n
- (mapcar 'add_list '(
0 c( M. h% t6 c) n, j% w! V - "Horizontal"4 Q: X7 y/ y; @" y! {3 [! _: u. Y
- "Vertical"
$ ^% P8 U% I4 E; N- N - "By Style"4 p! `7 A; n5 V& |
- )' {1 N* h# R! G# D
- )
! P' l+ D& Q9 n! B; o9 y* t& h - (end_list)
( T4 @; R- {( c, M& l5 Z/ U - 3 [2 p C/ a3 |
- ;; Set initial tile values
3 F4 B- r' ~; B8 R; L" D" t3 y! P - (set_tile_props)
0 n4 x; o1 `; f$ y - (set_tile_handle)+ c [3 k- q' y2 Z
- (set_tile_pt1 0)
6 k) \! i' t/ n& W; V. H# D - (set_tile_style)8 q9 }% c) t0 b3 F; {
- (setq just-idx (cdr (assoc 71 elist)))
( c0 L; I w+ ?" D0 \3 [7 |) V7 @ - (set_tile "MTextJustify" (itoa (1- just-idx)))
5 @9 T- j4 [5 S% f - (setq dir-idx (cdr (assoc 72 elist)))$ m h, U1 Z4 }7 l& x9 T
- (cond, D- [' M. i5 m: a$ l* b& n
- ((= dir-idx 1) (setq dir-idx 0))
: F* f+ ?& h# O: f+ H; R - ((= dir-idx 2) (setq dir-idx 0))9 R% o) \2 H. [% u" l" n8 @
- ((= dir-idx 3) (setq dir-idx 1))1 P9 m7 a3 u6 Q
- ((= dir-idx 4) (setq dir-idx 1))
+ N, _4 e/ A m/ C - ((= dir-idx 5) (setq dir-idx 2))
! H" R( A& I, {3 g+ _ - (T (setq dir-idx 0))# Y0 w7 Q5 X7 y h* v
- )( M4 ~! v) Y/ s9 E' M, G
- (set_tile "MTextDirection" (itoa dir-idx))% i( m! W7 m! O* H
- (set_tile "MTextWidth" (ai_rtos (setq wid (cdr (assoc 41 elist))))), _" n Z& S0 v l4 G/ a+ }; z- S
- (set_tile_hght)7 x g4 X: D/ L! K+ E
- (set_tile_rot)
1 e. T; ?0 R5 E
/ L; Z5 @) N0 X4 F8 v2 @- ;; Set edit box, disable if too long% A; u* M0 V ~& ~! }/ G
- (setq gc3 (cdr (assoc 3 elist))6 b2 }' L1 O) |! {6 S2 i
- text (cdr (assoc 1 elist)))+ v" d6 o# Z- {. x9 E
- (if gc3- w; z& g# T0 C7 v Y8 f6 r
- (progn ;; Text is over 250 chars, disable edit tile
6 V- k r$ \" P' C$ C0 b - (set_tile "t_string" (strcat (substr gc3 1 25) " ..."))/ S* U6 Y+ Q. H& c8 D! \
- (mode_tile "t_string" 1)
3 c0 J7 W4 A0 l& A* z - )
' Z2 ~$ c" b6 E* y( I - (if (> (strlen text) 80)
2 I( S/ t3 l3 \ u - (progn ;; Still too big7 N% j$ s4 s' q
- (set_tile "t_string" (strcat (substr text 1 25) " ..."))
8 |. A0 J# }7 _ - (mode_tile "t_string" 1)
6 @$ |6 F5 b2 @$ x - ): C* J& I- a$ A+ @9 Y
- (set_tile "t_string" text)
( ?9 `* e0 X# t. ?- }/ R1 S - )
8 L6 a( i+ C) k/ F - )( p( b. w, x( j$ o5 o0 O8 ~! [, v$ ~5 F
- 6 Y. @/ i; Q: R5 w
- ;; Define action for tiles
4 j! y/ v6 g9 }* e6 {& e3 G2 H - (set_action_tiles) t8 n- t) J0 m- Y$ ]1 u7 Y
- (action_tile "style" "(MText_style $value)"): C5 @% z) J6 x& {$ Q4 U+ n
- (action_tile "MTextWidth" "(ver_MtextWidth $value)")
2 n& p2 Z) k; i0 S9 ]5 z" _ - (action_tile "MTextEdit" "(done_dialog 4)")
- i9 [$ p" A8 f/ [' H5 y" _$ T. ]. } - (action_tile "MTextJustify" "(setq just-idx (1+ (atoi $value)))")5 G Y6 u8 L0 i+ | s
- (action_tile "MTextDirection" "(setq dir-idx (atoi $value))")
! N# U' X( s1 |1 w0 m# }9 C - - T0 X8 R1 E# o6 P
- ;; Set initial focus to text edit box.
9 M6 R( h) E% u' l# J9 _1 e - (mode_tile "t_string" 2)+ G' h! y' A( K1 s
) r- M) h) P4 s4 ~) T# d- ;; Run the dialog
3 g+ v3 B) y, M0 ?/ n8 z8 I - (setq dialog-state (start_dialog))) i' G2 w) W1 s4 J# d0 l) x
- (cond
- [) u$ a% {% e - ;; Cancelled - restore saved data) ]# ^3 n' h/ E5 s
- ((= dialog-state 0) (reset))' m, N& ~4 t% J4 M3 f8 [
- ;; OK - save new data
9 q' S) a- A1 D5 M* e - ((= dialog-state 1) (modify_mtext))1 T, o) b* ^5 F( ^7 \
- ;; Pick new insertion point
4 F2 t) o; u) L7 a0 T5 u4 x" t& D - ((= dialog-state 3)
! y" s: v/ d, [4 z4 A! P - (modify_mtext)' E; [5 e j8 ^+ p
- (setq pt1 (getpoint (list x1 y1 z1) "\nNew Insertion Point: ")). v) {- [8 J) Q* j a( W) M9 S
- (ver_pt1 0)2 f1 Q3 F# l5 p( u% `; p) l
- (ddmtext)
6 |# R; ?' ]7 ?) B/ h: a. ? - )9 J7 a" P' w' O# q
- ;; Run full editor
' U8 t5 J2 x8 L1 ~8 ]0 v9 S% v - ((= dialog-state 4)
: u8 _% a2 a8 N/ _! k - (modify_mtext)
- n4 a, s9 o1 U/ w4 j6 N3 o - (safe_ddedit ename)" i: Q( y& R4 B7 h
- (setq elist (entget ename))
8 W2 h. [ O, W* _! C - (ddmtext)0 R: B2 [6 r* G1 A1 t( c; R( k+ z
- )+ e6 O% P G- t5 n3 J
- (T nil)
2 r3 V0 X }6 B. W, w0 @; @" [ - ); M% f) V- P0 ~9 e! _
- )
5 i5 d8 }5 d7 _3 R7 i$ Z - 5 Q: L: T' a3 h- A$ ?' {
- ;;
/ d3 m' ~ e) _3 O/ y: A" C - ;; Modify VIEWPORT
4 g$ k5 M* F$ L( X. I1 F* o - ;;, \: t9 n4 g+ ~( x, h3 \! G4 h1 X
: K X% k5 s8 u# I/ D4 q- (defun ddvport ()9 {7 [! S1 O% I
- (if (not (new_dialog "ddvport" dcl_id)) (exit))
: _; C- F+ J; L U5 ` - (set_tile_props), Q4 A9 @4 n) ~0 _8 q0 P. ]0 l# w" E
- (set_tile_handle)
8 z6 p$ Z- }) ]8 @' D, ]7 u7 f - (setq vpt (cdr (assoc 10 elist)))
4 q: n( L: j' w1 w3 b" ~! J - (set_tile "xtext" (rtos (setq x1 (car vpt))))+ w5 T5 q) k8 G F
- (set_tile "ytext" (rtos (setq y1 (cadr vpt))))6 _ \# \( _2 y2 h% g$ C" G
- (set_tile "ztext" (rtos (setq z1 (caddr vpt))))
& x! H. C% w( V8 W$ I6 l V - (setq wid (cdr (assoc 40 elist)))$ a2 h8 C3 E, f n0 `+ f
- (set_tile "wid" (rtos wid))
. d6 D: r/ F/ p& a$ r' K - (setq hght (cdr (assoc 41 elist)))
8 _/ h6 G: x- T1 |- y% ^8 d& d* K - (set_tile "hght" (rtos hght))
5 z2 m% m# [ k5 o1 k% |, i - (setq vpid (cdr (assoc 69 elist)))
# z( }; D2 Y2 V& t" _; Z - (set_tile "vpid" (itoa vpid))
: p6 h4 {1 w( ?& h$ R - (setq on-off (cdr (assoc 68 elist))) [8 c5 \) m2 z. D. l3 ^) `* q
- (cond9 ^2 f% F0 m2 \% n) V! Z+ s1 J/ M8 `
- ((= on-off 0) (set_tile "on-off" "OFF"))4 M( \ Z4 }" x* U) l
- ((> on-off 0) (set_tile "on-off" "ON and Active"))8 N( T/ N# t+ p- n/ l0 y; W, c
- (T (set_tile "on-off" "ON and Inactive"))
8 z& V$ \7 b: e7 U - )
7 J8 q4 i- x! M" [3 q
( U2 v& n; j2 b- ;; Define action for tiles' N) j4 Y9 F( H% ^; |( I, p8 Z8 b0 h
- (set_action_tiles)
/ |% |8 I# t% C. r7 W/ M( d
$ a! b+ W. c: A2 @- W8 [* ?$ M- (setq dialog-state (start_dialog)) r" C$ R/ d! o( {- {3 A- J; s5 T0 L
- (if (= dialog-state 0)4 V% C$ b# z! I& N
- (reset)
; Q1 |6 _5 N- }) { - ). }! ^6 r" D, H* V m5 S/ ~
- (if (= dialog-state 1)
1 r: h1 i) O8 t - (progn
. E r& B( C. f - (if (= ecolor 0) (setq ecolor "BYBLOCK"))
3 K$ s. l1 ], `8 W+ y - (if (= ecolor 256) (setq ecolor "BYLAYER"))
1 i, T1 f5 g$ ~ o6 K - (command "_.chprop" ename ""
- T) c \, ?1 P' m: w" L# L9 o1 f G - "_la" elayer; f$ \9 [( \- p
- "_c" ecolor ""' r, d, D' r v2 y. W: b
- )
. j& c2 G8 e1 i4 |$ D6 @0 D - )
& p' H* [: n8 O& W; l% ?/ A - )) |+ R! d2 o3 X
- )
: e; Y; z0 F% f+ q - ;;
) A% t! h; U4 R( N* F2 D - ;; Modify POLYLINE
, `5 Q' V8 a6 W. [4 }% R m: k - ;;
! b, L8 u. W) W" e( j - (defun modify_polyline ()
4 F( H2 G, i5 M* n" e3 A6 k1 c# C - (modify_properties)
0 O) f3 I y- ~: I - (if (= ltgen "1")
O* Y& l% X% K" s K3 d# i - (if (/= (logand bit70 128) 128)& l0 y% `7 o7 v
- (setq bit70 (+ bit70 128))) ?/ D$ Y8 ]4 N5 B5 `
- )
& ^$ ^0 m# O$ d* e# a! A - )( J$ t! b; {$ O$ R) c- C7 |% ?
- (if (= ltgen "0")
# X- r5 R7 U3 O% \8 H+ k% Y - (if (= (logand bit70 128) 128)
; X; K# ^: g* R& k9 E- e - (setq bit70 (- bit70 128))7 v" e) r5 j: |. |1 b. y, D
- ) s% r& ?0 H4 h9 ?. U& T
- )3 I& |# r4 z+ v# X
- (setq elist (subst (cons 70 bit70) (assoc 70 elist) elist))2 l' b \/ S% B: e$ |. t, I) t3 x
- (entmod elist)6 d8 \, r w) ~/ w* A! T
- ;; Added to take care of updating Vertex information for color
& v9 r8 i9 e A+ t9 G1 q7 ` - ;; and linetype.
. M: D. C' ^1 ` - (setq save-ename ename save-elist elist)
/ V% e: w2 L7 L/ u' S - (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")) e) K- y. o3 j
- (progn
1 \7 T! f! n8 k" Z8 t - (emod ecolor 62)
8 W h& J f; q" Q9 O - (emod eltype 6)
3 ~' C/ N! R4 h4 t5 \3 l - (emod eltscale 48)
( y: @, ?5 f" c - (entmod elist)0 U: l4 q* |' q( J8 G, l
- )" d3 B' O4 ^7 M2 C
- (progn5 g y; j, {" s4 {! v5 W# S9 K
- (setq ename (entnext save-ename))7 M# `" e& e7 N# g" `
- (setq elist (entget ename))9 g. S1 U0 h4 |9 D, z; ]
/ ?% S! [. i( \/ d% W( p3 |- (while (not (= (cdr (assoc 0 elist)) "SEQEND"))
4 K% o8 m9 _, W3 v) u4 J. u - (emod ecolor 62)
Z! j/ z; S* C; O! x, d; [ - (emod eltype 6)
: V2 w* n! I# D - (emod eltscale 48)
# x5 f/ H3 B; W+ B' J) `' k( c3 Q - (entmod elist)
) Y" M( U% @2 b$ }. s/ q) f! [7 [ - (setq ename (entnext ename))$ X% ^! m- N, j; T2 _, C* r
- (setq elist (entget ename))0 p2 O. d4 F+ H: P7 i* N: R
- )
7 ?7 v4 t9 Q `, {3 N/ G5 R6 g* r - )
9 R f1 r7 z, s+ S - )
7 t! {3 D: y. Q# _ - ;; Update the SEQEND
& V7 k+ }/ Z6 \! |7 t! ~ - (if (= (cdr (assoc 0 elist)) "SEQEND")
' G& Z( @0 {% |$ P: R; i- P4 J1 d - (progn
( }) ?- V4 h- A3 J; S5 Z - (emod ecolor 62)
) f7 J$ ]: j& ]8 a9 N) ^ - (emod eltype 6)2 @% ^+ S3 H$ s) Z% S' D- a
- (emod eltscale 48)2 O* E; F7 ~, }; a
- (entmod elist)
( j3 a( k2 U7 {! i+ ]: D& { - )/ p. O& c" B9 O* ~9 [2 } ]6 t A
- )
, q9 d# U1 g) [/ ^; A1 H - ;; Go back to header.9 F8 X( k& H( n+ A* e
- (setq ename save-ename elist save-elist)
: {; _* {0 O6 p
( D7 d1 l2 ~) C/ c+ u- H- (entupd ename)" Q2 h; [ {8 ^5 h0 d! A
- )
6 c. R# D: W, r* R
! N$ q7 J. a" u( I" F- ;; Increment vertex. Set tile values to next vertex8 P' N) H) j( I U' M( P) b# ]
- ;;0 [' @5 |# p2 e
- (defun next_vertex ()
0 _+ \$ w3 c. g& i8 Y$ \- E3 a0 l - (if (= (cdr (assoc 0 vlist)) "LWPOLYLINE")
, n0 w1 \5 \; @* z/ T: w - (progn
5 J0 O- Z2 |4 y - ;; If the counter reaches the number of vertices,
4 c( W+ f! U# j- d+ v1 e U - ;; roll it over to zero again.- v0 G5 c7 y* E4 ?( I
- (if (= ctr (cdr (assoc 90 vlist)))
8 t* Y! M& g) H z - (setq ctr 0)
3 P* K L; }' E3 g r2 I - )
7 Z9 |, P1 ]: l/ F- f1 J& x. B - (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))! g- Q( _1 W% c3 e3 t9 D& U& o q
- (set_tile_vpt pointype)6 d& r. E8 C# l' u9 G7 }& y; J
- )- o) T, e2 ~8 a
- (progn0 O: n( e5 f5 t: C. l
- (setq vname (entnext vname))
) |( ]. U( A- C, L" c! c# @ - (setq vlist (entget vname))( x% W, W, A+ O* o5 @; h
- (if (= (cdr (assoc 0 vlist)) "VERTEX")) d) y* F& s5 W: i4 n" M& C
- (progn( `3 q' @; M8 {# F4 r8 C
- (set_tile "ctr" (itoa (setq ctr (+ 1 ctr))))
$ \7 F: ^3 k* Y# R) `( | - (set_tile_vpt pointype)
! H! _' y6 d- \, v7 i$ M+ | - )0 c* D8 `0 h# Y' l8 [2 M
- (progn
5 ?, M9 w, X- L ^$ p# l5 w - (setq vname (entnext ename))" H! |7 P: F( ?* C
- (setq vlist (entget vname))6 ]+ B: }% v+ j
- (set_tile_vpt pointype)
0 S, I0 ^; |2 S+ n I" q - (set_tile "ctr" (itoa (setq ctr 1)))
5 v# W( ^$ }! u K2 a - )" s8 `6 _4 a5 _2 k- f' N8 D
- )
7 a. @5 N, D) k" G% W9 b! E0 a - )4 q' r3 j: _% ^8 N: `
- )% _* e+ b2 |8 K6 O9 a1 F
- )
* t* P& t8 v4 P, Y. i6 w4 i - ' T6 ?3 L* W/ }$ m( S
- (defun ddpline (/ oldecho)0 N" t: h3 o6 W& }1 n( x
- (if (not (new_dialog "ddpline" dcl_id)) (exit))+ q/ y$ W7 U- c0 m7 H2 ]
- (set_tile_props)$ P4 L& q, n! ]- ~) D% T9 f
- (set_tile_handle)' {9 f- w! C+ M% t6 b# g
- (setq bit70 (cdr (assoc 70 elist)))3 F: p" }( Q# J T# U+ e# d h
- (setq bit75 (cdr (assoc 75 elist)))
+ T* X2 Z4 j" H4 l0 i/ B - (cond
3 f( H( x0 y% ]( U - ((= (logand bit70 8) 8) ; 3DPOLY8 t: u- n% x! k: \1 ^- d& F
- (set_tile "ptype" (setq pltype "3D polyline")); |$ K' _: F$ Y$ P$ x2 g
- (setq pointype 0) ; WCS or ECS point values& c- z1 s9 z7 h. i/ R4 ^( H! Z
- (mode_tile "fit" 1)# v' q. _) `* v
- (mode_tile "mesh" 1)5 [6 V- ~# A+ {: o) B s( r
- (mode_tile "bezier" 1)
7 w0 X" L9 p7 Y0 a - (mode_tile "ltgen" 1). P, p. v, J& }/ t: d# ~
- (set_tile "none" "1")
$ E/ _. B" q: Y - (set_tile_closed)
- x+ }$ S" \, y - (set_tile_fitsmooth)/ N* E' ? ~1 Z a: C
- ); ?& e( ?$ w% j! C5 ]. o
- ((= (logand bit70 16) 16) ; 3DMESH/ J8 `; Y; z% {3 _7 _: [6 p
- (set_tile "ptype" (setq pltype "3D mesh"))
4 v" E3 e4 o G* V' N# T - (setq pointype 0)
8 t, i5 w5 f, ] - (mode_tile "pline" 1)
: y7 l# _: b2 y5 l - (mode_tile "fit" 1)' L9 j0 e$ m+ K* }& A
- (mode_tile "ltgen" 1)
3 B% x1 {1 M; _/ ], O% B$ r" [8 b - (setq m (1- (cdr (assoc 71 elist))))/ I% X9 y& Y6 R- X, T- u
- (setq n (1-(cdr (assoc 72 elist))))
4 {) \! y1 b, e1 M+ z - (setq u (1- (cdr (assoc 73 elist))))$ Y9 {6 ?1 C" F; }) B* N# V
- (if (< u 0) (setq u 0))
* ~, g R+ G- [: p6 L) o - (setq v (1- (cdr (assoc 74 elist))))
- z/ @# G6 S k& ` - (if (< v 0) (setq v 0))! _- d$ P' O# i3 B" ^' Y l$ e
- (set_tile "m" (itoa m))
$ s, M2 L% K! E( _0 n M0 v( O9 u - (set_tile "n" (itoa n))
1 t& I7 n" L3 |; Y' b( [7 ?% N - (set_tile "u" (itoa u))
& F1 Z5 C+ i- A: C0 v - (set_tile "v" (itoa v))6 q+ c1 j0 U2 |- i4 h& E+ [/ Z
- (set_tile_closed). Q8 @% c0 o* G' }
- (set_tile_fitsmooth), t8 l2 k' s. f2 r5 r* F9 p
- ); S5 N& B2 V( l1 f# X p* h
- ((= (logand bit70 64) 64) ; POLYFACE MESH
& y: |9 H5 [5 N - (set_tile "ptype" (setq pltype "Polyface mesh"))3 J. o- j9 A) |* d9 F/ N2 s: d2 _
- (setq pointype 0)% x" s7 s7 L. r: b* S& B
- (mode_tile "f-s" 1)
; ?/ U P6 F/ M3 E7 f+ W" o - (mode_tile "mesh" 1)/ C) ~) |' T) L: y' Q" y1 w. I5 e$ s! u8 n
- (mode_tile "pline" 1)
' c) Q8 A, t' y1 [0 h - )
) K/ l, E) `) S% @1 q* H - (T ; 2D POLYLINE
+ S, y. k0 z8 d- J u7 K& {' s - (set_tile "ptype" (setq pltype "2D polyline")), n8 c" i3 ^. k9 x7 C
- (setq pointype 1)( n+ l3 q* O2 V* o) k- X
- (mode_tile "bezier" 1)7 q/ D! G8 j$ h/ i; R
- (mode_tile "mesh" 1): W! W K) p8 y. w6 U4 f% h
- (if (= (logand bit70 128) 128)
6 m% I5 ^* [2 b' a N' I* L* v - (set_tile "ltgen" (setq ltgen "1"))7 _" r, Y% i) ^; h$ e5 T8 v
- )4 V5 r; E0 S. F" E* G; ]
- (set_tile_closed)8 s! S( R. R& B3 E1 L
- (set_tile_fitsmooth)
+ B2 W) Z) e, X - )
( L t1 ?+ r# Q& J& D - )7 F4 w2 w# ?2 v/ ]3 D s
1 C$ l! u( g/ M; N: s* H- (if (= (cdr (assoc 0 elist)) "LWPOLYLINE")$ V0 q M @+ Z! s9 B2 ^
- (progn5 Z% d f9 R4 j1 {6 V
- (if (not next) (setq vname ename))
, I: T6 V- X# x7 D0 v: a - (setq next T)- ?4 { K: z# A3 z
- (set_tile "ctr" (itoa (setq ctr 1))) _1 U* J! ]* F' T8 U0 a' |7 F5 l
- (setq vlist (entget ename))
! q c, m1 U0 r3 N, m- A. e( y& P - ). `3 c7 h I0 a- E( o8 Z( t& m
- (progn7 Y4 D4 C& v8 f6 m4 T' }2 Q# U
- (if (not next) (setq vname (entnext ename)))
+ K+ f+ n9 V1 z - (setq next T)/ ~/ d- s$ W+ }. c, q4 W. n
- (set_tile "ctr" (itoa (setq ctr 1)))) E N! u+ k$ q0 S
- (setq vlist (entget vname))
5 {, D. h3 m, y+ U7 R0 u" p - )
1 C$ {4 n8 r" v6 A1 Q8 V" i! y - )
( i4 n& W' B, ~/ H' q - (set_tile_vpt pointype)
" c& |1 L5 p9 ^0 A6 l& o2 A, j - ;; Define action for tiles
% M6 f" ~7 g! P# D% J - (set_action_tiles)
; T2 e6 S4 O; {6 l - (setq dialog-state (start_dialog))3 y) q0 r- l9 @- z( y/ ^
- ' t9 D, z! i9 R1 D& U
- (if (= dialog-state 0)
9 r8 T- _$ Q! P; ?$ A0 @ - (reset)
9 U6 I( i2 F8 T2 t( b4 u1 l - )
! p3 T4 `% o0 E - (if (= dialog-state 1)
2 p& g3 [3 c/ [ C3 s - (progn
# @. o; \* @1 |9 e9 _ V% @# c - (modify_polyline) e c: C4 q8 K: @
- (if (or (= pltype "2D polyline")# s" d4 }) B5 J! I" h
- (= pltype "3D polyline")7 d/ E7 n* B) }2 \9 Q- \% _8 c
- )
) l. z/ u$ K4 _ - (progn1 H, E1 v7 l" t; q7 f
- (command "_.pedit" ename)* U4 l# x4 T8 d
- (if (= spltype 0) (command "_d"))
2 M& C7 Q3 _- A | - (if (= spltype 1) (command "_f"))
2 ^2 F( ?- ^; U, L' V - (if (or (= spltype 5)
( F4 E0 {, @+ X, X - (= spltype 6)
+ h3 D( l# m- @- S/ ^# {: b - )! p: ?. `& V7 S; ]
- (progn
0 V/ |6 x3 i0 ` - (setvar "splinetype" spltype)0 D" ^! e8 H& v5 M8 ]# F& W7 c; @
- (command "_s")" i7 U }0 n5 C: m% I- d$ [' {/ _- u+ t3 c
- )! f% M- h/ l4 M) `4 R- @ m2 F# c; D
- )5 q6 M/ a: m# o7 t- M$ A
- (if (= closed "0")) J M* y- y+ Q; }
- (command "_o")
5 [. Z5 B0 S3 s* ]3 s. n& a+ p - (command "_c")
' E: ], W$ E7 H5 m* G9 N; a - ). t6 m5 x- K" u4 d7 q+ p/ O
- (command "")
6 x. W W V+ \% H8 a - # p+ x2 P! b8 ? X
- (if (= spltype 0)
" q! L' K8 u+ b* V; M - (progn2 N3 x( R6 [6 y
- (setq oldecho (getvar "cmdecho"))
9 [: B- C- I( y& ]' b - (command "_cmdecho" 0)0 [7 N. R8 H) D" O
- (command "_convertpoly" "_light" ename "") P' T7 F$ v5 V7 k$ Q/ W
- (command "_cmdecho" oldecho)
+ S; [ l% Y! u) C - )
& `2 Y7 O' ?7 |6 z0 o6 l - )
+ j |9 F* r: c3 O X2 } - )
! I* b- @ X$ `4 g - ) R& i' f$ P! E' v$ P1 ~
- (if (= pltype "3D mesh")' k# k6 E. a$ a+ W0 P
- (progn
4 @- y# Y; {4 x! P; x - (command "_.pedit" ename); O3 a. q- [/ l) c7 w0 w
- (if (= spltype 0) (command "_d")). r8 s6 Y( y3 K5 b. y7 d+ r
- (if (or (= spltype 5)7 {$ A; E9 V# u" o8 _
- (= spltype 6)5 C% b6 I- [; g$ J. f' d5 |- r' m X
- (= spltype 8)0 _5 `+ U' @3 o& e3 z
- )
* i" Y) h' t, @! u - (progn
( \% Y8 ^" n, b$ U - (setvar "surftype" spltype)
' @6 r: U& u" @" W - (setvar "surfu" u)! U5 ^. t* m3 D4 M2 p
- (setvar "surfv" v)( l q# o* E, E3 e; T! i+ L' n
- (command "_s")
7 z- k" g+ t" d1 E - )6 R# C& [5 D' l0 o) G1 s% F8 Q8 n
- )8 a: B U& A8 g: {: i
- (if (/= closedm old-closedm), z% w& i( c* c/ r' U( m9 J1 F
- (command "_m")2 T. [5 w! y J& s0 v, V
- )* D* R5 j3 ^; k1 J) Y0 _* U
- (if (/= closedn old-closedn)
O; Z6 N7 S, |1 y - (command "_n")
. Q. V7 Z! X/ q1 T% H1 N - )
. P8 ?& O9 F& L - (command "")& a/ s& v7 }$ e. O! B- _8 B& o
- )
9 \; L7 P- v4 K3 Z - )/ V% e* v, o& @+ }9 Q
- )
/ f1 k O" G" S8 P - )& W' w) R) C# ^5 }/ Y9 m0 z
- )
1 a3 U& ` S) ~3 [# @3 s - ;;' c# K; r0 d7 o% K+ Q- F# L1 J( G
- ;; All the spline data is contained in a single elist. We must do some7 h- d' o: r& |4 |- m
- ;; tricky list processing to loop through the elist in order to display
, j& z0 t( K( ^0 p - ;; all of the control points.* I- {. o- K0 O% n
- ;;
* _' O/ _# N1 N. N {/ D - ;; The structure of the elist is different for rational and non-rational
4 e3 p9 Z4 v. j$ \( s! U6 n - ;; splines. Therefore, we check the rational spline flag.
1 ?( u% \2 K s# S+ r& B% r - ;;! Z' N% K: I c/ j2 S$ F* X/ _
- (defun next_cntl_pt ()9 @& _% M$ | S# y F' G
- (setq elem-no 0) ;; elem-no = element counter
/ v7 J8 l9 o* e: G/ c - (if (= first-10-time 1) ;; If first time, find location of first
' _2 d( t. d# O ?& ~" y; { - (foreach list_item elist ;; cntl point element in elist0 s" \- i Y7 x# e5 G' B# H( `
- (progn
( T0 b0 g' R% S. a8 I" p6 c - (setq elem-no (+ 1 elem-no))
6 U: N o6 P( s9 m - (if (= (car list_item) 10)
- q x- V" H3 o) U - (progn6 H2 g4 o6 A2 x- W! [7 B
- (if (= first-10-time 1)
7 g/ W- e$ B- y4 p2 c: q5 Y - (progn; Y) T( L" `% U" a J
- (setq first-10-rec (- elem-no 1))8 E7 l! A% u l1 \
- (setq first-10-time 0)6 t+ F, N* P4 J9 U
- (if (= rational_spl_flag 1) ;; if rational
$ s/ F+ @5 V9 s" X - (setq cur-10-rec (+ elem-no 1))7 ]% \8 o4 ~6 c1 C3 z2 U) L
- (setq cur-10-rec elem-no)0 n" `5 R; R# _& C2 E9 ~
- )
1 O& q9 ^, d3 S$ D, S7 _: O; ]5 D* J7 V - )! ?( f' N* m! b+ J. P7 [
- )
* T# M8 O& g- V) v( p' F! J: T - )
1 h* y+ Z6 Q- r. J7 Q; D7 ]2 w% [ - )
7 F9 j \9 F! `( n' C, o - )- G: T3 @$ ^' v- Z( b( c
- )
+ y2 G& ^& V7 G - )! ]$ q. t: U' Y& i; B0 s0 O- ^
- ;; Now we know the location of the first "10" record; it's stored
! z) p3 M1 s7 u- U5 r - ;; in first-10-rec. The first 10 record was already displayed when
& p7 \; d% c5 X' ]! g5 f) ` - ;; the dialog first came up so let's display the second one when% \ }, S u1 N+ J) q
- ;; the user presses the "next" button (the first time through).
" |$ o# f5 ?2 O% D+ v1 E - ;;
6 y3 W' V# d6 q2 {5 J, { - (setq temprec (nth cur-10-rec elist))7 b. M% t/ n' J1 E v
- ;;
' g: }" x8 _& D - (if (= (car temprec) 10) ;; if 10 record
) L4 v- C- f; f4 S - (progn( J P4 r9 B/ i' U- ~
- (if (= rational_spl_flag 1) ;; if rational spline# I/ u9 Y' Z8 r
- (progn
9 i ^0 y) b8 ]: M8 C' |5 O - (setq tempweight (nth (+ cur-10-rec 1) elist))
3 v/ U. l" l* {" T1 l - (setq cur-10-rec (+ 2 cur-10-rec))' m2 ]9 F) b0 r/ _
- ) r7 f/ [7 x. D7 x1 V+ u
- (progn ;; else
8 s8 X! u) ~$ n: Z9 V/ r - (setq cur-10-rec (+ 1 cur-10-rec))' d3 g% I- |' h5 m, ^( T
- )
0 |. Z! A8 R! y2 O: _, } - )
- y5 m% s& }, z. W, R - ) ;; end if rational spline: ]2 K) r/ n$ k9 ~7 f
- (progn ;; else reset counters4 [9 N8 A+ t8 b `1 ]6 B
- (setq temprec (nth first-10-rec elist)) ;; get 1st 10 rec' h1 b! [3 _, a( @: L- d
- (setq tempweight (nth (+ first-10-rec 1) elist)). G( r/ K- C$ M- d8 U8 \ |5 s
- (setq cntl-pt-indicator 0)
& J" @( h* R1 [) i$ \/ C0 T - (if (= rational_spl_flag 1) ;; if rational
+ G- S8 V y! w. g' ~ - (setq cur-10-rec (+ first-10-rec 2)) ;; point to 2nd 10 rec
. L- m0 _1 J! x/ Z8 G - (setq cur-10-rec (+ first-10-rec 1)) ;; point to 2nd 10 rec
% u+ x9 `6 o) e- P6 ] - )
, d0 g# a# O1 R! ]* ~" v - )
( E( W" W3 E" p' [+ v - ) ;; end if 10 record
* q9 L* c( i7 s+ V) p t7 Z
9 Z a' g" g" j) h- ;; Display cntl point, weight and ctr. Increment ctr.
8 f- D( e4 f; ? - (setq cntl-pt (cdr temprec)), v2 @3 w8 w9 R) O+ E+ J+ n/ N F
- (set_tile "xtext" (rtos (setq x1 (car cntl-pt))))3 {% M/ M4 }& ~7 d* P( C- x
- (set_tile "ytext" (rtos (setq y1 (cadr cntl-pt))))
. B" D) C m3 D$ a6 T- ? - (set_tile "ztext" (rtos (setq z1 (caddr cntl-pt))))
d% z1 t$ _0 t& D- K5 F - (setq cntl-pt-indicator (+ 1 cntl-pt-indicator))
; X2 e: g) s) x; b5 N }9 x9 u/ | - (set_tile "cntl_ctr" (itoa cntl-pt-indicator))" H% D1 p" V6 _3 j8 C
- (if (= rational_spl_flag 1) ;; if rational, w2 }- V% |2 g, l
- (set_tile "weight" (rtos (cdr tempweight))) ;; disp wght
! G/ }4 K* ?# B% O% b6 v3 Z - (mode_tile "weight_text" 1) ;; disable wght* H1 G- F- h+ h% e6 I
- )
* A* `/ i j2 ?1 T0 ]- | - )4 l: f( a+ t8 e r$ Q. K
- ;;
Z5 D! C9 e5 p2 Z' W - ;; All the spline info is contained in a single elist. We must do some7 q, g' C; Z1 Y2 y) R
- ;; tricky list processing to loop through the elist in order to display- u0 Y' v; d0 K* h& Q
- ;; all of the user data points.* ]" w. F& b2 m) s
- ;;
% F. Q# ^2 y; S/ S/ F - (defun next_data_pt ()
& k- v" a, A* ]6 O1 }1 A# G' h - (setq elem-no 0) ;; elem-no = element counter- @$ d( k @7 y, c1 ?
- (if (= first-11-time 1) ;; If first time, find location of first
& H3 ]6 b4 z5 }4 Z0 |$ z - (foreach list_item elist ;; data point element in elist
, v( E1 |& L, M$ h1 m7 D& Z* X - (progn
' y. y% O: B: `9 R; D f! s - (setq elem-no (+ 1 elem-no))6 \! z/ w% H+ U( V
- (if (= (car list_item) 11)
- @+ Z& D0 b7 R" i( ]/ [' @) A! l - (progn
( f* N: n' _! i* j R0 V' T {- N" s - (if (= first-11-time 1)
9 @3 L6 D' W4 l% T4 M+ v - (progn% [* b* D) a# `& H8 ~( o
- (setq first-11-rec (- elem-no 1))
7 B" p, R; Z8 {8 }5 n: ^& E/ V - (setq cur-11-rec elem-no)
/ n: C( p& Z8 ^ - (setq first-11-time 0)
. l$ E% ? Y3 f% Y3 t4 ~7 ~8 G - )+ Z1 j2 X* Q" p5 t2 @
- )( k1 Q. e. o" M7 s$ c
- )' L% N, U: f1 V
- )
5 J: J; }7 g n% |% A( V - )( ]5 @& Q# v: Y
- )
" l- u( o1 E9 @) e- e' U8 S. } - )0 b. o/ N/ M& [# f8 A' |- j: ?! \
- (setq temprec (nth cur-11-rec elist))
8 S9 ]0 n3 L+ {4 l. X7 U - ;; If it's not a DXF "11" element then we've gone past the last
: Y& x4 c) H3 p9 y - ;; "11" element. Go back to first "11" element. Reset counters.
% w3 \. ?. j' x) g# } - (if (= (car temprec) 11)
5 c; J- T* q9 w- | - (setq data-pt (cdr temprec)). a" @8 c: \; _, X/ q# S& q" D! K
- (progn ;; else) m2 p2 ^3 Z. G
- (setq data-pt (cdr (nth first-11-rec elist)))" I* M' j1 }, e: q) x
- (setq cur-11-rec first-11-rec)4 N- w8 ~$ M8 Z3 n* e
- (setq data-pt-indicator 0)
4 o) P, x5 r7 p7 U" x8 f8 ` - )! }3 L X4 b2 s4 M
- )! ]; v: l. D, a5 Q k* c
- ;; Display data point and ctr. Increment counters.( \( M. x7 i E$ I; j! v" [+ b
- (set_tile "dxtext" (rtos (setq x1 (car data-pt))))
9 J Z B8 x; _ - (set_tile "dytext" (rtos (setq y1 (cadr data-pt))))
4 M7 X8 R3 T' U' G3 Y9 @ - (set_tile "dztext" (rtos (setq z1 (caddr data-pt)))) x$ Y% S! h! n" W# J
- (setq data-pt-indicator (+ 1 data-pt-indicator))9 }" r z, M L& r! n" I$ A( l: v$ L
- (set_tile "data_ctr" (itoa data-pt-indicator))
u0 B, L7 S# ~3 R - (setq cur-11-rec (+ 1 cur-11-rec))) }+ L3 t& B5 `0 h7 d% z
- )
3 H; h& q& L, J4 Q; U/ L; n - ;;
& L i* c$ }- r0 R - ;; Modify SPLINE: s6 o' m! Q, F8 G' k
- ;;
& k+ @/ U# f7 V" u) z( t( d+ S7 t - (defun modify_spline ()* i' p! k; A: k8 u3 A. X: @
- (modify_prop_geom)# G5 L, q, U# f1 G
- (entmod elist)# O# {1 e2 n- @. y, w. ` z% _% [( K; m
- )8 E. D( m6 v- B5 z' L; }* C5 `) z2 W# Q
2 j( E. \6 F( k7 @- (defun ddspline ()
" L8 N: \+ b, a$ b7 f, i9 s - (if (not (new_dialog "ddspline" dcl_id)) (exit))
% n. L# H0 u+ C& ~2 ]; @ - (set_tile_props)
* H% X+ m) _: h - (set_tile_handle)
) f X* Z/ K; R3 q5 b o* _ - (set_tile_spline_props)
. m+ D9 _3 U" C - ;; Display first control point
5 I! X: I/ }. F7 c% G - (set_tile_cntl_pt)
8 H" o9 _& `; f2 E! |" T - ;; Display first data point
% b; u9 f% Y& j- R. L6 `1 l! H' X/ e - (set_tile_data_pt)8 q2 \) t3 c. a, L
- 1 R; ]9 |3 E8 O; p$ q; x; o
- ;; Initialize flags to indicate first time through the dialog.2 {5 E8 \, e2 J8 A# t
- ;; For control points and user data points the "next" buttons: q! `4 ?, h7 ~; n- p
- ;; in the dialog call the appropriate functions.% H8 |* I# s1 Z
- (setq first-10-time 1)
* E( G" Q0 ]% j8 [ - (setq first-11-time 1)- H- f. \' V: B a2 @0 e3 ^: I
- ;; initialize control point number counter
0 M; w f X" B, b( G - (setq cntl-pt-indicator 1)
9 V) x/ f% {, [5 s! Y3 R$ U - (setq data-pt-indicator 1)2 l& Y! Q- u: Z( @ C' Z
- (set_tile "cntl_ctr" (itoa cntl-pt-indicator))- r* o7 `! v3 K" Q2 h2 E" r4 a; L5 {
- (set_tile "data_ctr" (itoa data-pt-indicator))( @: ~$ U9 o, e: ]
- (set_action_tiles)
- y2 C1 }0 N, ]% K' x. j J - (setq dialog-state (start_dialog))( ?- v# q0 E! T/ ^5 @& q# L
" @8 W3 R# a _$ g. o( `- (if (= dialog-state 0)8 |# r1 L* ?. {7 j7 C4 B
- (reset)
1 v; g T3 k4 L# Z K$ a: w. U* u0 x; ^ - )
- a4 t/ |3 d* T/ L6 G" T" b$ v - (if (= dialog-state 1)
4 H7 b2 l; i$ U* I. M& t - (modify_spline)( j- x# i& v# ^% E. O) { Y5 d9 ~
- )! x* s( G; U& @. V
- )
; G$ X0 v4 W. u4 P; L - ; A+ G5 y4 b7 _4 _- N4 I
- ;;' l) G9 d: U3 }; x
- ;; Modify DIMENSION0 y) x0 ?* z3 b
- ;;8 g. c& j$ H' @7 i! _0 T7 O
- (defun ddimen (/ dtypebit blkname bename sublist a stname n dimtbl
3 K* S' B3 K4 r8 |6 S2 \8 P - dimsty dimlist dimtext svtext dimovr sv_dvlist stlist! j, i6 V. h# ^. M
- dimtype dimsvcurset)
6 l" H% [% L6 B; D) _8 n x& l1 F - (setq dimtype "DDIMEN"! r J8 o- O& c. w9 s1 |
- dimsvcurset (ddimen_dimsty_restore)3 W0 b, _0 F! w7 k% V
- ); f/ Q. Q; z& j6 O+ J( D% v
- (if (not (new_dialog "ddimen" dcl_id)) (exit))- N8 {4 B$ j) |+ d: h( l
- (set_tile_props)
6 V* P. \" b3 Y7 c - (set_dimen_props)( d. D8 |5 y5 p, U2 ?. I8 O$ `
- (setq dimtext (cdr (assoc 1 elist)))
, t" Y Q3 O; r4 P; H) `7 n s& L5 c - (set_tile "t_string" (if (= "" dimtext) "<>" dimtext))
# T) N7 [4 t9 R# I' @8 i1 w8 p! k - (set_tile_handle)( l, h h A) l4 s7 T( _
- ;; Define action for tiles* s: ]4 `# Z5 k( S8 ?
- (set_action_tiles)
9 Q1 @. i! z5 C O, r' L( Y! ~$ e2 j
% |& @- U- F0 ?( R. { c4 v# Q; G- ;; Set initial focus to text edit box.
* b5 H) O! p* p/ | - (mode_tile "t_string" 2)* j; y1 z+ h8 I) S2 H# g1 y
- ' c- N/ ]9 m* n9 h' M7 U3 |2 q. F
- (setq dialog-state (start_dialog))8 `. F6 ~8 H- ^( L- f$ ?
- (if (= dialog-state 0)
; ]/ f4 i5 J6 @, T1 g - (if (= ddimmt 1)- T( a- n* Y5 a# h1 U! g
- (reset)4 S9 k j; W; ?8 f$ L- f
- ), ?4 B9 p( y/ M( b3 ?
- )( i$ J* `& k" e0 v
- (if (= dialog-state 1)3 u5 \' h. P3 Q; q" ^5 ^, |. m8 d
- (progn
& P5 j( o0 l6 v8 }9 ] - (if (/= dimsty stname)
5 f" J4 V, j) L* L; w( x - (progn0 J+ [2 Q) x- ~9 O+ I: o8 w) {
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case* J* e- ?/ A( C/ q2 O3 S
- ; doesn't have it.
9 s+ N; g7 t2 B' k5 }0 r8 u - (if (null (assoc 3 elist))6 X4 l6 _4 _6 [- ]; f" d/ }! c5 W
- (setq elist (append elist (list (cons 3 dimsty)))), q! T) z$ N) t0 `9 a" P
- ; else just replace it.1 A1 i; e e6 U
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
: V! a K5 O) W0 Q. D - )
2 u: c1 |* J5 L' X8 @& @7 U - ; refresh sv_dvlist with new dimstyle.1 L8 \ T$ M' Z8 m; L& z! W
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
. Y! z4 j" z _ w2 m - )6 j* o6 v* |5 S A( ^9 u$ K: \' U7 ]
- )! p& d. |$ Q" G/ U
- (if (not (null dimlist)) ; attempted to change dimvars
7 S+ n$ g4 G8 |. h2 m - (ddimen_complist sv_dvlist dimlist dimtbl)% w" {' M6 _* H" e# c4 c) G0 j
- )/ h, T- Y3 n1 ~! g0 t4 {
- ; Modify dimension text
b7 b" L# ?7 } - (if (/= dimtext text)( m3 m7 q: W+ ~5 J* P
- (progn
; D7 q5 F! q p - (setq dimtext (if (= text "<>") "" text))
$ v: e$ u( d9 n9 P+ i3 ` - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))- o/ b" V! Q5 M) K( Q
- )# u2 e; n L" c; i w6 c
- )" o3 U$ Y" e) ^% s7 c
- (modify_properties)! D) \# I0 u# O f
- (entmod elist)9 ~7 ~( s: x" e( g% V) u
- )) m; Z& ~, F' s6 V; i
- )
3 m- g* l& L, N# t, t) o; B - (if (= dialog-state 4)/ K- i: @2 e& K0 S' u
- (progn
1 h" p. u, z4 [8 R" n - (setq ddimmt 1)/ \* P# g7 i7 K9 Y9 U, P
- (if (/= dimsty stname)
0 \$ j: `% f3 j5 t# \ - (progn7 d0 v3 C0 d6 {& H ]! Z7 }/ ?
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case9 f/ L' Z$ @) d
- ; doesn't have it.
# j) s0 ?% R9 A) n$ l - (if (null (assoc 3 elist))5 x$ e! k4 ?* @/ L# o
- (setq elist (append elist (list (cons 3 dimsty))))
) d, U1 d; z5 \4 X - ; else just replace it.
" m% k1 ?/ y# D* Z$ I% m - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
; n, e( @! U" q0 c - )
) S. o; t* ~$ l5 f - ; refresh sv_dvlist with new dimstyle.2 `7 M8 Y1 x6 J9 r/ K
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))3 o# J2 H" m& t0 ?* [
- )
/ g8 e! d, l) S( d - )7 e8 c/ L+ f' h" `: B
- (if (not (null dimlist)) ; attempted to change dimvars1 O' K! e6 ~' U' H+ |
- (ddimen_complist sv_dvlist dimlist dimtbl)
$ X/ G- o7 H* X7 N% A# U - )3 `, H4 _$ f7 ^. Q9 H; X# e. U/ {
- ; Modify dimension text
) O4 \( n) B; M0 E& L2 A+ U - (if (/= dimtext text)0 t5 }1 F' p! z* K2 S( f
- (progn
8 w1 z j* ?2 a' z3 T - (setq dimtext (if (= text "<>") "" text))
8 O1 B7 a" V5 ^+ f8 ]7 j2 j - (setq elist (subst (cons 1 dimtext) (assoc 1 elist) elist))) Z' }# U5 V9 c, ]& s- L: I: Y
- )$ \) ~, M9 J7 D9 W
- )- W6 [8 ~) `$ F4 D
- (modify_properties)
/ A" v8 R0 }. L7 y9 [4 H - (entmod elist)
2 N2 ?3 V' k7 M8 F( r- ~ {4 B - (safe_ddedit ename)$ @2 s0 y3 m6 J* t" C
- (setq elist (entget ename))4 h" N" u# {* s% t B7 A
- (ddimen)
, _* M( E; a4 y" I: ^$ o$ }) E - )+ b; @! }6 q: R7 k) w) [+ ?" N
- )
" k: @; P9 }6 ~. N, i - (ddimen_setvars dimsvcurset) ; Prepare to exit7 o1 b$ R% v+ \0 q* S
- )
# i7 C# X. o" \4 w9 ~
( R, H/ |6 ]2 [! B3 a, l/ G- ;;
6 E/ w. W) l5 S# _, | i5 Y - ;; Modify TOLERANCE7 `+ c' f4 @, `% L
- ;;
9 R |: v" F4 w - (defun ddtolerance (/ a stname n dimtbl# Q% x, V1 y8 {0 m' F5 G% R
- dimsty dimlist dimovr sv_dvlist stlist dimtype8 x. G$ x# x6 b' L B
- dimsvcurset)
& [) q8 y$ ]2 V4 r - (setq dimtype "DDTOLERANCE"7 H+ y1 P9 g" \ K0 f
- dimsvcurset (ddimen_dimsty_restore)9 A( X$ W2 _; l7 F0 Y' T
- )
1 h7 Y" N, q3 }2 M! p* @ - (if (not (new_dialog "ddtolerance" dcl_id)) (exit))9 V# T4 t* y! W. d" X4 p' y0 e) {
- (set_tile_props)$ S b+ l+ ^0 W6 f" x
- (set_dimen_props)- D/ ^1 I3 D; I! w
- (set_tile_handle)
0 v: S5 Q/ Z7 S- r3 J" N# _: B - (set_action_tiles)
. b# s+ J) U! A* b4 J) Q - (setq dialog-state (start_dialog))
* i4 n$ t; i3 W" m' }2 X - (if (= dialog-state 0)+ J5 a2 m& g. B. L
- (if (= ddimmt 1)7 \$ ^+ S7 d6 @, E) p8 Z
- (reset)
& i& A$ T* |. Y1 }# O% x* i/ f - )
5 R t- c) r, r, t8 r# E& A9 R - )/ w; L! K3 X3 J/ t. _: g/ q% i
- (if (= dialog-state 1)3 t0 j @' Y- z9 |5 L
- (progn
3 k% y. o I- R6 i( G" C/ f, I/ c - (if (/= dimsty stname)# Z" {2 E Z# W# y1 U- u
- (progn, H6 C- Q* V/ n* z
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
( e1 N# O. h8 i( B" R5 U4 t - ; doesn't have it.; k N) d9 j; B0 `) a
- (if (null (assoc 3 elist))' H" s8 ?2 N& f
- (setq elist (append elist (list (cons 3 dimsty))))
R# d3 R3 U7 S# f - ; else just replace it.
' J2 ]5 F9 ^* L6 W+ |; n- ]( T - (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))
: ?# |8 \! j9 j1 V% Q0 b7 I' i( Z - )7 _) ]2 d5 V. `1 H/ j6 H1 [% i s. a( `3 i
- ; refresh sv_dvlist with new dimstyle.4 u/ Q) e9 ^; z* G6 |2 s. I& \/ _2 r) Q
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))+ C! ?! E# q( }9 ~8 Q& l: {
- )
7 r+ }' k7 C7 P4 U. R* m& x6 O - )2 }; `. {* ]* {' V1 |2 K1 \
- (if (not (null dimlist)) ; attempted to change dimvars$ ?2 w' m) P }% y
- (ddimen_complist sv_dvlist dimlist dimtbl)
/ R1 i7 B/ S' Y( E" t4 o - )
9 d1 [. f- W- a) N1 f4 |1 I" R - (modify_prop_geom)
& ?, `3 k$ E2 V- [ - (entmod elist)
0 e: [+ a2 i$ d( _7 |+ j" k - )6 B7 `0 |, T0 u1 p( \, \# m3 D- ^
- )6 q6 k" U* L* a! _+ m! w1 H
- (if (= dialog-state 4)& s. A0 h: R& ?1 O& b8 k& [% d& b
- (progn6 I) J& N/ Y4 t
- (setq ddimmt 1)
/ k( k/ t/ ~2 ?1 R4 @ - (if (/= dimsty stname)3 }/ t+ ]* c# k- k, M9 B3 i
- (progn/ F' L- }; g2 L0 g, V$ L8 a
- ; Be sure to add (3 . dimstylename) element. R12 *UNNAMED case
6 b; l! h1 a$ c! M7 {- w - ; doesn't have it.
( h- X! d7 c9 L6 \- v. @$ o - (if (null (assoc 3 elist))
0 c: n3 e/ A) m4 Q# M2 ]& Z, r1 i - (setq elist (append elist (list (cons 3 dimsty))))# H/ G% j& C% j% n% i% A
- ; else just replace it.1 R9 P9 s" U% P) g7 j4 G- ?# P \
- (setq elist (subst (cons 3 dimsty) (assoc 3 elist) elist))6 t" k: M/ M5 q1 z# R: i
- ): F* r1 C: y8 w- [. d$ i
- ; refresh sv_dvlist with new dimstyle.5 s' E% @3 ` @
- (setq sv_dvlist (tblsearch "dimstyle" dimsty))
6 v( w3 t- J: K2 ^5 `7 w3 J( z, t+ m1 h [ - )( y8 k$ l5 l/ I6 X1 l3 v
- )6 U/ q6 _, ]: n( W$ {- A
- (if (not (null dimlist)) ; attempted to change dimvars
5 H, [1 W/ S/ Q# U4 f - (ddimen_complist sv_dvlist dimlist dimtbl)8 e2 G0 Y: R |/ F' f
- ) H9 \# R& C: r8 W8 Z+ P& y, z5 `
- (modify_properties)! E1 g+ q) K- R& e2 C) \
- (entmod elist)
) n$ G2 x) D z# Y& U$ d - (safe_ddedit ename)7 ]: e! w M* k) G, o7 e9 r
- (setq elist (entget ename))
, N8 B, |1 N4 G5 ], k. L1 T$ F - (ddtolerance)4 O2 s9 v9 [. H; H$ W# P
- )$ s3 ]. W* b: G
- )$ I+ Z0 d% C p; O. f& m6 w
- (ddimen_setvars dimsvcurset) ; Prepare to exit5 x2 s, G! ~% r: b1 E
- )3 X1 g' z' A4 S0 L
8 Q( q! K( ~7 r- ;;
6 T: j& h2 E5 a r - ;; ddimen_dlg - jump to ADS ddim module
# m% o7 i" {: \! h - ;;4 K/ H1 {0 X1 p$ ?6 R2 I$ y6 U6 y
6 G1 a1 `$ U' |- (defun ddimen_dlg (dimtype tile dimsty dvlist / dimlist)' t$ ]6 D5 Q0 F7 E% p
9 T1 C* i3 L" Z8 z+ K- ; Jump to DDIM with overrides if any.
4 F+ K1 }/ X6 C4 a8 K+ X; O5 g - (cond ((= tile 11) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Geometry- H0 F! c+ L7 E5 U+ y
- ((= tile 12) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Format
0 }& @! O- y7 E8 \* ~8 Q - ((= tile 13) (setq dimlist (c:ddim "DDMODIFY" dimtype tile dimsty dvlist))) ; Annotation3 w# G# l5 |% b1 x( z
- ) F% |+ D O5 {! E* R7 V
- )& s m8 m( M: ^" s5 F
5 B0 [2 A: x. x1 I- ;;
1 B+ [; q# _3 C4 b# n: ?% v4 M - ;; Dimension variables updated are stored as overrides./ Q7 o9 c; j% H0 y+ Z1 n+ ]
- ;;
) q& k3 X3 [ A4 z7 n: u
1 I7 P$ E& G' p- (defun ddimen_complist (dimolist dimnlist dimtbl / i odvar ndvar) T9 n2 m) B' z2 a
- dv dime commandIssued)4 C# Z0 g0 V% v8 `# Y( g' U
- - U2 a/ m9 H- T: R4 Z0 N: C
- ; Here we skip the following first three items:
9 j [$ S1 }1 h& O- V# q - ; (0 . "DIMSTYLE") (2 . sylename) (70 . 0)
+ O% T0 a& m3 _) Y7 X* z - ;8 C2 X+ @1 Q; y+ G% Y1 u
- ; The list comparison immediately begins with dimvar.5 ~- v v) w7 q: @7 l# G! S9 L0 O
- ;! t# T. r. N- T/ p5 ~$ B2 @. A
- ; dimolist - original states of dimvars/ Z; U9 p3 `" n0 s
- ; dimnlist - new dimvar list which is of the resbuf's5 i" W7 q9 s# o5 ~5 y: y" h
- ; dime - entity name for the dimension, f4 O/ v; l% ?5 Y
- ; odvar - value of dimvar for the dimolist* _3 V$ b( ?; M5 j
- ; ndvar - value of dimvar for the dimnlist1 l. i& ?3 }! A! Q5 H! P( h" k! s7 ?
: _( Y: F' ?! ~* f! w; y- q! O2 z- (setq i 3
6 ]2 E s' _2 O" m - dime (cdr (assoc -1 elist))
! Z0 G U) p+ ~- S# K - )8 L9 T6 Z1 R0 f- \0 B" D
- (while (setq odvar (cdr (nth i dimolist)))
$ r. l$ {+ M' [! }3 P# T - (progn1 T+ `, q' g4 z `
- (setq ndvar (cdr (nth i dimnlist)))
0 D* k3 o# ^& U2 m1 z+ c9 R- o+ G - (setq dv (nth i dimtbl))3 b( R' j( ~' [# l
- (if (eq dv "dimtxsty")
! z' b1 a' ]" n: P6 R- J - (setq odvar (cdr (assoc 2 (entget odvar)))
* _' b) v2 q. G9 i/ A" E$ ? - ndvar (cdr (assoc 2 (entget ndvar)))
6 ^7 `9 j. ~4 `4 C - )9 G+ F) g1 z( m
- )
. x9 I2 a& G+ \7 q - , F1 ?0 }, R6 k) J
- ;$ h+ H1 E/ y6 i0 \( I2 c
- ; In order for DIMOVERRRIDE to operate correctly with string1 u9 `- s9 K' ?# }" V0 a# Z, m# G
- ; based dimvars, we must pass "." versus NULL strings.3 E0 i5 L" ~6 R% {% U. H
- ; In this case ndvar is the new dimvar value the user wishes( L0 C& l. y& ?0 C' N$ r7 E
- ; to update on selected dimensions.
, f% G2 o' q/ r - ;6 R4 N2 B {4 H1 N- a" t& _+ I, ^
- (if (/= ndvar odvar); [- ^4 D5 ^+ m' q
- (if (= 'STR (type ndvar))
& N) ]* K% w1 j6 P( x/ u3 ] - (if (= ndvar "")
$ u( D" j/ m7 K0 p9 \7 c. ?2 a/ q - (setq ndvar "."))))+ q' Z7 R# J/ v9 j
- ) K9 R3 W& i$ J
- (if (/= ndvar odvar)0 z$ @6 e( e. |7 ^
- (progn7 w; i5 R8 |. ~. K, h% ~) [
- (setq dv (strcat "_" dv))
1 O5 R# G0 q+ \; w3 n1 x - ;
' H# D" g6 b3 T* r3 H - ; Start the dimoverride command x0 Q: j4 |; ~+ g& o9 U9 I
- ;
/ H7 @6 E2 y8 y! b - (if (not commandIssued)
* x4 U3 e7 }& x3 X% B! c - (progn5 h$ r: k" \ }
- (command "_.dimoverride") r1 |" W& G9 }+ l+ Q' E) D2 }: v: F
- (setq commandIssued "T")
f/ A) k8 r- {* i+ ? - ). |& Q7 o4 _2 F7 B
- )2 J. ], [: C) ^" y0 ?
- ;* D" [; o; z( _; P7 S. E$ \
- ; Issue dim overrides
7 \ \! B1 N1 ` - ;
: \3 _2 V/ l* O; c6 B4 t% B; f - (if (and (or (= dv "_dimclrd") (= dv "_dimclrt") (= dv "_dimclre"))
$ h& E. f; {; t - (or (= ndvar 0) (= ndvar 256))
( n2 _7 v. _) s% r# M2 c - ), A3 Q) M5 I. i: e* j# ]# \% i8 X
- (progn1 l, r V: V/ \& V. [9 L$ D
- (if (= 0 ndvar) (command dv "BYBLOCK"))& G/ r0 ]$ ^- R; }
- (if (= 256 ndvar) (command dv "BYLAYER"))
, H1 E9 D8 S2 m' { - )
% F( ]$ M+ F( |" }( C - (command dv ndvar)
1 f |+ Y b/ g. h. y - )! M3 [: I) K$ f9 Y( |/ A7 }# y
- )7 q. S# f. j0 E) A
- )& B' b/ G) @+ C h5 G, }8 h/ k
- (setq i (1+ i))( V9 ~+ _+ n: H
- )1 ]4 m% z- w* b
- )
- J v$ l/ m. ^9 m - ;/ G& V7 h; v- q
- ; Select Entity and terminate command q/ l8 _; D' b4 v8 H
- ;1 F, X. d: E5 |7 v; Q
- (if commandIssued
6 `+ k3 n% ^7 I2 E. ?) E# d2 Y# f# ? - (command "" dime "")
0 H$ z( }+ X& {" \ - )
" ]) A* c' G O/ s! Z! H- ^4 ?) A+ M - )
9 v/ \6 m' o' y7 }4 e - 0 H8 u9 x2 `2 r6 V
- ;;
) Y" }2 M" Q: P' S! s - ;; Get style name currently selected style name.
# v; q: y/ g0 z! ^$ i1 n - ;;$ ^, z5 N+ n, ^$ G3 Q9 _. \
6 l4 j0 o# t [& _) F- (defun ddimen_style (/ dimsty)$ W) ?: x0 i8 J. i4 C/ P2 o: c
- (setq dimsty (nth (atoi (get_tile "mod_style")) stlist)
m. y# T4 E# w* j- q( x5 D1 O - dimlist (ddimen_getdimvars dimsty)5 t' w2 I$ f, o4 Z1 [) k" a
- )
, l1 q% L) B( B3 K - dimsty2 r; g9 A) }* z# W
- )
$ I* h9 k2 d4 a' V
" z$ Z) O0 T/ H: P- ;;& Q; g! B: w- w2 B: B2 G y
- ;; Set dimvars
+ l! Y1 @6 f' X8 d5 w& B - ;;! @" o3 A" O& S$ r$ F9 P2 y
- (defun ddimen_setvars (dimsvcurset / dv i)# _8 k' ?# R- x
- (setq dv (cdr (nth 1 dimsvcurset)))% \6 L; b, ^4 k7 w. N/ i
- (command "_.dimstyle" "" dv)0 Q* g @ ~( o% W( r3 t
- (setq i 3)
3 y+ a7 j; J$ m$ @) N* D( a - (while (setq dv (nth i dimsvcurset))
- N+ [1 e+ t$ f d - (progn1 k" t1 l: o8 _/ k7 U* E9 F
- (setvar (car dv) (cdr dv))
2 C' a% q5 Q ?9 r - (setq i (1+ i))) @" T+ G8 x0 _ i
- )' J: }) g( y7 j5 }4 d8 Z+ d
- )
( Y' l/ P6 F7 @: u& w( ` - )2 F, q; [/ T9 L( D% I9 [
- ;;& r, ]! v6 u" z. |6 d5 |' L
- ;; End-of-dimension
2 L$ y" f# g. c' @4 P* Z! z# J - ;; ==================" d) d. l% O X( Q# d
- 7 X3 J' ]% B2 G K
- ;;
+ |* @7 `. y" y1 Y" }6 r - ;; Sub-dialogues for properties. Common to all object dialogues
5 ^; k6 f4 r. t8 V$ j6 _1 X - ;;( {- F* P5 m/ r. D! L
- ;; This function pops a dialogue box consisting of a list box,image tile, and
* \8 V: m. t0 ^# O/ Z - ;; edit box to allow the user to select or type a color number. It returns
5 q1 T$ Z+ w7 o9 Z - ;; the color number selected.
8 U/ K* j: `- o4 F. _$ j - (defun getcolor (/ old-idx colorno cname lay_clr): b2 E5 n7 u) d/ P/ w% T
- (if (= (get_tile "error") "")+ Z! \% I& M& V' v! `- N4 T, V
- (progn! g6 n" v4 z n9 Y, G+ g7 V, ~, `
- ;; Get the color associated with this object's layer, for use) c/ X( A; m7 l* H! y, j1 }
- ;; in the color swatch if the user selects color BYLAYER.0 M- B& }' t# V# s
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))
8 _5 ?6 X3 k9 W& [ e& M - (if (numberp (setq temp_color (acad_colordlg ecolor T lay_clr)))
& B. `& f: J( o$ _0 N - (progn
/ J0 E! @! ~3 C b, [+ h4 D - (setq ecolor temp_color)
: Z( r7 f# u: v4 {/ i2 z) m- c3 V - (setcolor)2 [3 b! J% p1 G8 T
- )
% k; E" q X9 T" I - (setq testcolor temp_color)/ A* O2 Q. E) |) d
- )
" O; }7 |3 }% e3 U' i9 R - )% O6 @+ F+ u u0 [' z
- ), Y- Q, L3 C4 n2 \3 h; `$ E8 H; g
- ecolor" C2 l; [& K0 r% ~/ E% T$ ]
- )
. I- y- s" M% B4 Q; y - ;;
+ U7 ^' t7 o+ u7 ` - ;; Function to set the color tiles.
! ^. N$ S, E3 m0 K0 U; p - (defun setcolor()$ A4 f# z% b& r* ~
- (cond8 V( X3 A* K. U0 Q( |. N
- ((= 0 ecolor) F* U2 H, i0 _7 q0 n; X% e# S
- (set_tile "t_color" "BYBLOCK"): O8 { j2 W1 H! x* ^$ t% l, L8 z
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white
: G' |' Q# R" h1 K# O - )
: i! z) k. p# W" L - ((= 1 ecolor)$ ?) ]! T" \/ J; R7 w7 I5 _
- (set_tile "t_color" "1 red")+ p3 |* r$ M! {# D" r
- (col_tile "show_image" 1 nil) a; G% I6 E( M; G- b8 h) F* N+ `8 U
- )
- m3 C% l" [' J0 p! p# f - ((= 2 ecolor)
$ N, [+ k& P. p' D! f - (set_tile "t_color" "2 yellow")
0 V+ c* X! v4 ~' z- a9 O - (col_tile "show_image" 2 nil); N4 o6 J0 e7 i9 L u
- ). j, P8 h' Z$ B; U0 B
- ((= 3 ecolor)
+ T. L) z! H& Q - (set_tile "t_color" "3 green")
6 j2 b8 F: [/ ]3 v1 j- j4 k) ~: k/ B - (col_tile "show_image" 3 nil)
* d! Y* A2 B$ X - )) N, K" Q% E1 ~% I
- ((= 4 ecolor)
/ |9 X8 h1 {2 o - (set_tile "t_color" "4 cyan")4 Z! b$ G8 k! @4 @1 a+ H X
- (col_tile "show_image" 4 nil)0 `8 b; r7 y% n2 p. a$ i& o8 `
- )
) b6 D: j& j1 v# \/ m; p! O1 L9 F - ((= 5 ecolor)! \6 z; ~+ J+ [/ {# @$ @) n* J6 v
- (set_tile "t_color" "5 blue")
( ?: ]8 F5 F( v - (col_tile "show_image" 5 nil)
0 Q: x- f+ ^8 F* y - ), a2 V5 L/ h. k& a
- ((= 6 ecolor)
" X( r: z9 K* }# f( N7 l3 r: g - (set_tile "t_color" "6 magenta")6 b' X ^% P8 F1 [) F! u
- (col_tile "show_image" 6 nil)
6 a3 h: c) [8 J- k - )
: O9 e& h$ u, h5 D - ((= 7 ecolor)
# Y0 ?3 n5 F8 `+ \ - (set_tile "t_color" "7 white")
! X) X2 V+ [+ M: l$ ~) {: I - (col_tile "show_image" 7 nil)" [' Z% K- r7 E$ d$ z
- )
6 c! M0 C- i5 i$ r* a, [; T - ((= 256 ecolor)+ i, v F, `/ k- Y" K- l7 B
- (set_tile "t_color" "BYLAYER")
$ F' q; i* R: E. A# A8 v - (col_tile "show_image" (bylayer_col) nil)# ^3 f8 r S$ S8 p) ?7 k# ], l% `
- )
% U2 h+ M, r1 \ ]# M - (T5 d B! v* ~. I% T/ t' U4 L
- (set_tile "t_color" (itoa ecolor))( E. {) L. L5 q3 @3 }6 H
- (col_tile "show_image" ecolor nil)
- m* X# d; {2 Z: m: x - )
% v5 i" a7 y- r; k/ C, v- u. {4 b - )" {' w' |. W4 \# _' |
- )+ |; e. t( K! T; h O! b m( t
- ;;3 B# J2 O# }" s5 Z f; H, m
- ;; This function pops a dialogue box consisting of a list box, image tile, and
# o1 g( b8 K3 \) m5 f2 n4 v - ;; edit box to allow the user to select or type a linetype. It returns the
p/ _+ ^2 v8 k9 T* R - ;; linetype selected." ]" r( u3 D) V
- ;;
, P' n' q; S; X' B7 z- H" l% ?+ Y$ O - (defun getltype (/ old-idx ltname)1 R, @. ~4 M7 R
- (if (not lt-idx)
( T" N! y% h) b, X/ {( P s - (progn5 J6 A% E7 J4 O3 P2 z
- (make_lt_lists) ; linetype lists - ltnmlst, mdashlist7 r2 q' }8 b. t& i, h) W
- (cond
% J: q6 m5 s0 q {- u - ((= eltype "BYLAYER")
: Y) n* a; Z, t5 z" | [7 ? ?% L - (setq lt-idx (getindex "BYLAYER" ltnmlst)))" ?% B$ w9 }# E5 ?
- ((= eltype "BYBLOCK")
# P4 o2 E3 Z% V7 l) i - (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
~. v/ x- _7 V+ a% M6 L - (T (setq lt-idx (getindex eltype ltnmlst)))$ l \; a1 ?. |( W; p3 Q( y1 @
- ): C& v# |/ V) x `! L
- )9 {( w8 L; Z$ b2 B& F6 c+ x
- )) {5 ], Y8 v6 o- c3 @
- / X4 S- ]% `; V- w$ }) i. d
- (if (= (get_tile "error") "")2 A- } Q+ E" O# r# M. q4 b
- (progn9 Z, f3 p3 ~+ W, f% E+ q
- (if (not (new_dialog "setltype" dcl_id)) (exit))0 @ ~: }6 E0 X3 Z) F
- (start_list "list_lt")- F1 G6 m) C( z! f
- (mapcar 'add_list ltnmlst) ; initialize list box' p7 `/ [, g3 v) n
- (end_list)
+ A& T- y7 Y0 B$ N" R - (setq old-idx lt-idx)8 h, ?% H! r" N+ h- t9 Y
- (ltlist_act (itoa lt-idx))
8 D# [# y4 v! j u - 3 X) c0 c2 c. n- g: F
- (action_tile "list_lt" "(ltlist_act $value)")
* O$ V$ @0 A+ K% [2 R0 `: l - (action_tile "edit_lt" "(ltedit_act $value)")4 p2 {2 E3 a$ v% J8 S3 s3 ?
- (action_tile "accept" "(test_ok)")
# \/ U( h* D& u$ C - (action_tile "cancel" "(reset_lt)")7 y- \0 U/ E! i, m8 b5 ^8 v' U
! Y# K1 f6 E0 b. u- (if (= (start_dialog) 1) ; User pressed OK2 n( C1 e! ]& r9 t% h: U2 X
- (cond
6 r: s0 Z% R' }! l- A - ((= lt-idx 0)$ A0 v/ G) y0 s$ U
- (set_tile "t_ltype" (bylayer_lt))
1 g6 |4 r. {* G! ` - "BYLAYER"$ C" }; h+ R, L2 F- h+ A
- )
/ W# Y. n% _6 A+ F9 n4 G - ((= lt-idx 1)
7 u2 ~ P$ e2 D' e1 V' b/ V# [; T1 ^: e - (set_tile "t_ltype" "BYBLOCK")
" |" a) ^$ ]" B$ ]: i$ X - "BYBLOCK"3 S, C. s# Y- i( b
- )
/ e% `8 d8 ^. f! Q9 N# b - (T (set_tile "t_ltype" ltname) ltname)
) [: ?: f. V9 Q - )/ Q5 H* p! S7 L2 a
- eltype) o$ u+ D3 [! E
- ): I7 l3 S$ B0 u5 C; q* q
- )
# G A- e# a8 \- Q. y k - eltype
1 [# |0 _0 F$ @+ Y - )& m' I+ G& x0 e. M. P# F$ k& F
- )( Y j$ d) o% X4 O8 g
- ;;+ ^6 c: W3 b* U1 R8 u1 L/ B
- ;; Edit box entries end up here/ s3 i8 o5 ?% V" D' H* s! ?/ |, Q
- (defun ltedit_act (ltvalue)1 n, a. m$ ^% i' s9 V2 M: h
- (setq ltvalue (xstrcase ltvalue))0 @# p# F+ E8 z( z8 Q" B" N& P
- (if (or (= ltvalue "BYLAYER")1 l4 V ]( Z. l: `4 ~: p
- (= ltvalue "BY LAYER"))
; Y& Z4 K0 O8 q' d( A - (setq ltvalue "BYLAYER")
1 z2 ~4 }' q: Z8 [9 f - )& ^0 }/ u L4 L" S; c. u
- (if (or (= ltvalue "BYBLOCK")
0 c% Y$ N3 G5 w2 e' N# `1 R& U - (= ltvalue "BY BLOCK")), ?$ g% T2 c+ i. u& ^
- (setq ltvalue "BYBLOCK")
. D8 D& G3 N$ E+ Y - )2 u$ y$ T3 k0 k& ]
- (if (setq lt-idx (getindex ltvalue ltnmlst))
2 D. l0 |0 y8 }7 h+ C# n: m& G - (progn# u+ @/ M9 s: t: Q
- (set_tile "error" "")6 G" V3 T! M! e5 o- F/ k
- (ltlist_act (itoa lt-idx))
6 c( i# i% M7 k* T- N - )& | j2 n; Z$ x
- (progn+ h5 q9 M2 K: O$ @
- (set_tile "error" "Invalid linetype.")
' Y: x: ?0 K( \- d) O - (setq lt-idx old-idx)5 L, {- r2 m& _ F9 Z v4 b2 k" G
- ;; (mode_tile "edit_lt" 2)
3 i3 l! }* W: F- s% {! z - ;; (mode_tile "edit_lt" 3)6 \! b0 I& ]# I
- )2 i# B1 }/ V6 M( X8 j; F$ ?2 ^0 m
- )+ |, v; N; } i4 i$ r5 U: \, j" E: M
- )6 h8 m/ F. R& ^! m$ |$ _: ~* A
- ;;
: q; o1 q' a( h7 K2 \2 o0 e5 @ - ;; List selections end up here. Update the list box, edit box, and color, k2 _8 c( o: ^, C
- ;; tile.
8 J b( p! W) ]# i( f9 v - ;;
. G! t6 H9 G5 o% F) L" P - (defun ltlist_act (index / dashdata)2 z5 t! v) D- c, X
- (set_tile "error" "")+ S: m/ o" C: E/ f2 k) {- [) l
- (setq lt-idx (atoi index))
/ Q; I+ [' h2 H - (setq ltname (nth lt-idx ltnmlst))3 n1 P0 ^2 H" U# ~! V8 \
- (setq dashdata (nth lt-idx mdashlist))
) H: `7 n( O$ A1 n - (col_tile "show_image" 0 dashdata)
$ Q, X' N$ G: r- x4 N: j1 t - (set_tile "list_lt" (itoa lt-idx))2 T# S9 ?' V" @2 B
- (set_tile "edit_lt" ltname)
1 z7 B l$ B! L+ x9 I7 } - )1 X- w( _0 k8 Z/ f/ Q' k, P
- ;;6 S2 C$ n/ I; y1 e; E* Q, c
- ;; Reset to original linetype when cancel it selected
3 j. S& w# T' c# M - ;;
0 ^$ |: a5 }% W+ h - (defun reset_lt ()1 f! Z/ M9 }, H: x
- (setq lt-idx old-idx)
' `8 j- U3 ^& F- I6 E - (done_dialog 0)
9 [6 Y/ V: Z# i+ l% O - )
' E7 L5 `: G2 D/ k# m" S* y - ;;. P( }8 B- J) C/ b( \7 L6 D
- ;; This function pops a dialogue box consisting of a list box,image tile, and; g0 H/ w. L5 u6 j
- ;; edit box to allow the user to select or type a layer name. It returns the- o; h z3 O3 \8 W- g* A
- ;; layer name selected. It also has a button to find the status (On, Off,0 L( d6 j) S5 h% e9 [2 R
- ;; Frozen, etc.) of any layer selected.- \; o, @: I& W0 K
- ;;; j7 g, s+ y4 L& G* H
- (defun getlayer (/ old-idx layname on off frozth linetype)
_7 }6 T- C7 \0 s8 N - ;; Create layer list the first time the layer
$ }5 c* b3 Q8 C* o: ? - ;; dialogue is called.8 ]( B. W0 v4 M* }% G! x r
- (if (not lay-idx)& ~- D7 I w4 u3 x) L& S
- (progn
7 {# x' R* y4 n6 b8 S. u - (make_lay_lists)% G$ ?/ L3 C4 x" `7 ~* ?
- (setq lay-idx (getindex elayer laynmlst))
! N% r: j* c1 }+ T) F9 t - )4 B; {0 f: Z7 l
- )+ _) @- {: a; U, m" A
- 1 l+ e. [, `) J" R' |7 [" T* ^& w! ?. N
- (if (= (get_tile "error") "")7 W: |4 u$ E- r
- (progn9 K% q8 `. U5 A- a" [
- (if (not (new_dialog "setlayer" dcl_id)) (exit))
- f8 N6 q" g/ c - (set_tile "cur_layer" (getvar "clayer"))
$ i. I: y. g ~3 ]% A3 M0 I% l4 q6 F - (start_list "list_lay")
0 o' T( B% x4 e4 @% ~, l' ^ - (mapcar 'add_list laynmlst) ; initialize list box
) S$ b* [" @% X' V - (end_list). L) C& i% `& F; C7 |2 ^! u% H" ~
- (setq old-idx lay-idx)& w4 d1 C8 d1 J+ X( _7 i0 W
- (laylist_act (itoa lay-idx))
* j# b/ m* `- W& W2 X - (action_tile "list_lay" "(laylist_act $value)"). \6 S8 n& o: h; e' K( L' [
- (action_tile "edit_lay" "(layedit_act $value)")( Y- @. \$ a" M3 Z7 ?
- (action_tile "accept" "(test_ok)")# Y; u9 b/ F% i1 m- z* ^
- (action_tile "cancel" "(reset_lay)")
- D+ j. n* j& Y) C- e7 L& D+ c - (if (= (start_dialog) 1) ; User pressed OK7 z; t+ x$ A$ l) j
- (progn
# p7 C8 u7 t; S3 U) i% E) Y: n - (set_tile "t_layer" layname)
/ b- c. O- b. b - (setq elayer layname)
' ^5 F! }! O2 K" i' \7 [ - ;; If layer equals bylayer reset color tile
; R3 T' C5 c0 W) y5 F - (if (= ecolor 256)
& \* i# H5 Y* n }3 V) z - (col_tile "show_image" (bylayer_col) nil)
1 e! W, u) Q! X* @6 ^ - ), H0 H, N' Y8 \0 e- W
- layname
9 S7 j7 G# H# F% ~& K) G' m2 s - )/ ]% h& Z }2 i6 N: D& m
- elayer
, ~8 d P/ K5 X! R# C6 v8 y - )
2 N7 K% k( b/ B; _6 L a: ` - )6 Q. f( z- b& z! J$ c. h' s" D
- elayer
. \- ?' a6 \5 X5 E# u - )! ~' Y6 i D# \3 F. L
- )8 f4 w, `; s- d) @; ?: ^ ]7 a9 f# i5 y
- ;;) L6 |; a- A) B/ I
- ;; Edit box selections end up here. Convert layer entry to upper case. If# h8 L3 n0 O7 F) D/ R, L; }
- ;; layer name is valid, clear error string, call (laylist_act) function.. `8 G% _3 N- U8 R
- ;; Else print error message.4 B+ s6 M7 t' @3 f
- ;;, k @+ G+ F% X5 `
- (defun layedit_act (layvalue)9 U i( A. M% ^7 \5 K, b
- (setq layvalue (xstrcase layvalue))
5 r) r- v& Z% f- U! C4 G7 b0 B/ A - (if (setq lay-idx (getindex layvalue laynmlst))- O: W: M/ e, a0 |8 R/ p
- (progn
9 U5 S* z: I" k7 h A# i' {6 T- `% {/ v - (set_tile "error" "")0 V/ M) U; s, B6 A# `. c8 X1 e9 b
- (laylist_act (itoa lay-idx))
+ i# Q7 \9 v; }3 E$ K. T - )( [7 G: N! m- x
- (progn
6 }* J3 z& @" H& q - (set_tile "error" "Invalid layer name.")+ `( y. _1 [; D5 w+ Y
- ;; (mode_tile "edit_lay" 2)
- C. Z) \7 f- r. ~% v, ~. H6 `! a; E - ;; (mode_tile "edit_lay" 3)4 m! s; W1 z1 b' {6 w# j8 e; Z7 k9 @
- (setq lay-idx old-idx)
& x. b: T: V3 G3 U ?6 w - ): b% ?8 ]% y5 w6 b8 o7 i
- )
7 E3 w: l' K& h. Q. x/ ` - )
- t5 J5 d3 {3 d& W& E- h. o - ;;. F8 L* }- U! n( J+ D# R+ o) z
- ;; List entry selections end up here.
7 ?" b' P3 a: \3 P - ;;$ y+ P u' \1 c4 Q# R0 s5 }0 k
- (defun laylist_act (index / layinfo color dashdata)+ @2 A3 }( Z& e: a1 s
- ;; Update the list box, edit box, and color tile.# F# ^8 J' [. \8 R9 y" o
- (set_tile "error" "")
3 b* B" r$ L3 R! x8 Z - (setq lay-idx (atoi index))! {8 J8 ^2 J7 \
- (setq layname (nth lay-idx laynmlst))( W* Y7 U3 z$ x
- (setq layinfo (tblsearch "layer" layname))% ?# |& w, t! h. Y# E
- (setq color (cdr (assoc 62 layinfo)))
: }4 R. k3 c; N3 a: m+ d7 E - (setq color (abs color))
4 _5 v( H4 w7 @" ^6 T$ N4 z' |9 Y - (setq colname (colorname color))! w4 |' Z2 B. J6 v7 j; c: P: s
- (set_tile "list_lay" (itoa lay-idx))
; u, {0 ~! |, o$ K0 X - (set_tile "edit_lay" layname)" I h* F/ c' X) F4 K, e
- ), d6 }+ z% g7 B& S0 Y! p& R
- ;;
" p/ G$ G8 c8 |0 K. G( p - ;; Reset to original layer when cancel is selected.
( [6 S, W3 ^) ]* u. Z - ;;7 o6 W/ e, G" n3 P' x) f. v+ }
- (defun reset_lay ()
$ G+ n9 }% V7 B - (setq lay-idx old-idx)
$ e5 H: C) [+ l* w - (done_dialog 0): ]* V2 Q6 |: y' R
- )8 A5 v0 f* J" w. m/ X# k
- ;;4 z7 Y2 d0 h6 B6 N; ~1 ~1 U
- ;; Checks validity of thickness from edit box.
* ] ?: S, D7 ?/ f0 `; @ - (defun getthickness (value)
6 V% n @% l& ]. M, B6 ~: R9 Q - (setq ethickness (verify_d "eb_thickness" value ethickness))8 N' `6 Z/ `6 z7 \
- )
+ H* G) S# {& z( p; o8 y - ;;; x* _4 k: r& l: j
- ;; Copy of (getthickness) for ltscale. If more, make this function
1 Z+ p& g X, n- | s `8 j5 u - ;; generic.- L/ |4 f; I. Y( S( V; U( k6 r
- (defun getltscale (value)
, ?& A( i: s; b/ |2 W* X/ \ - (setq eltscale (verify_d "eb_ltscale" value eltscale))
6 U- }; @' [( m( b5 V - )2 N, S0 t( r, | a" w/ u' E
- ;;* G4 i8 {/ g7 J& a3 ~
- ;; This function makes a list called laynmlst which consists of all the layer
: L @: V8 e, A1 X - ;; names in the drawing. It also creates a list called longlist which8 z3 ^0 W: U/ E- V& e7 G
- ;; consists of strings which contain the layer name, color, linetype, etc.( y3 b" S# i& f" p3 { m
- ;; Longlist is later mapped into the layer listbox. Both are ordered the; X2 Y8 F3 A6 _, X8 C7 A% v$ n
- ;; same.- \+ N# E- J% D) b
- ;;
- H/ m4 v+ i0 X7 }3 B - (defun make_lay_lists (/ layname sortlist name templist layer_number)
' `( |- u2 M) }# O - (setq sortlist nil)
" A y- E! V" b' F - (setq templist (tblnext "LAYER" T))
7 X) H' c, t, }( h$ v - (setq layer_number 1)
* o/ ^) e( v& L" q - (while templist
1 |) c/ O, O8 q$ c7 W6 I - ;; No xref dependent layers, please.0 T' ^. L& o1 f
- (if (/= (logand 16 (cdr (assoc 70 templist))) 16)
4 H E2 h* \$ u& s - (progn! }2 i4 h6 P! \- J
- (setq name (cdr (assoc 2 templist)))
; M7 M* y# v3 c6 p7 Q - (setq sortlist (cons name sortlist))/ z6 \! X0 @ q; o6 k
- )
7 d% x! l. U* z. z* A! \ - )
3 a5 R% T& m$ K5 M. I. h - ; Get the next layer.: o2 J3 |" Z. [5 S4 \: ^
- (setq templist (tblnext "LAYER")): Y* A- A ]) z
- ;; Not dead message...
; T5 C/ u [; v( {6 _ - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))9 _, p" z: s( e
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))/ p9 ?4 ^( l3 }& q# P) R( K
- ): {2 r) V2 |! l, H, ?9 P5 g7 E' U4 n$ s
- (setq layer_number (1+ layer_number))# O0 T! U1 {/ k, H7 p
- )6 s: e5 l* P a
- (set_tile "error" "")
" N/ r( f1 V6 }1 l - (if (>= (getvar "maxsort") (length sortlist))" o2 _0 S3 |/ T$ ]' E" @. h
- (progn" h9 ?7 ~% Y( _- O
- (if (> layer_number 50)
3 g/ X2 Y5 F" W4 L - (set_tile "error" "Sorting...")
9 {1 ^5 o. |1 Z" }5 V3 Z' \ - )& I3 a+ f2 r4 X' k t6 \0 C8 T: F
- (setq sortlist (acad_strlsort sortlist))" _4 S) v8 G: |0 R- h
- ): w( j l/ N& \- R3 J% j' F
- (setq sortlist (reverse sortlist))' \& O+ v9 z0 ]1 M; U
- )
9 I6 ~& ]$ ~) J/ N - (set_tile "error" "")6 z8 p/ O, D7 ^! p0 q; I9 u
- (setq laynmlst sortlist)
' I( L$ S; p+ g( G - ): `* w0 Q l6 z# _8 N6 u
- ;;* @, d+ Z6 r' F- z) w0 N$ v
- ;; This function makes 2 list - ltnmlst & mdashlist.5 K1 m- a$ \+ a, M, j. W
- ;; Ltnmlst is a list of linetype names read from the symbol table. Mdashlist
3 D( }5 _; C' f# E% c - ;; is list consisting of lists which define the linetype pattern - numbers
: q: r9 n2 l1 s0 m- ]" } - ;; that indicate dots, dashes, and spaces taken from group code 49. The list
6 K$ u; o; e/ [4 R2 ~. K' b: n% a% n - ;; corresponds to the order of names in ltnmlst.9 t( y6 U/ E$ D
- ;;; W$ a- k) P! A" L$ e
- (defun make_lt_lists (/ ltlist ltname)) X ?/ f- B% s' c, Z
- (setq mdashlist nil)
: |: r" O$ Y6 j - (setq sortlist nil)
; d# r! }: i d* x+ x6 i3 S - (setq ltype_number 1)+ I9 P0 f6 W: F/ y& _
- (setq ltlist (tblnext "LTYPE" T))
7 b( l, ^, d+ F5 a9 J - ;;(setq ltname (cdr (assoc 2 ltlist)))
* F, _$ Y3 o1 t3 `- g1 c - ;;(setq ltnmlst (list ltname))$ @, w, X5 P: S2 @0 G
- (while ltlist$ k! @: n4 k4 Z! Q3 }8 w
- ;; No xref dependent linetypes, please.
. U" b# V+ Y( c4 }( b9 Z - (if (/= (logand 16 (cdr (assoc 70 ltlist))) 16)
- `7 e. M s0 Y# q* X. f$ { - (progn0 D: d2 v N, A; B
- (setq ltname (cdr (assoc 2 ltlist)))- \4 b- x" r" z/ j1 p4 k! ?
- (setq sortlist (cons ltname sortlist))
+ r2 } G# y" @7 c/ m5 R - )
3 I6 o4 k- O9 a* ?5 D& D - )
+ j+ z8 p# [- m8 ~" A - ;; Get the next linetype." c+ o9 \) s/ K! A7 I
- (setq ltlist (tblnext "LTYPE"))5 Q2 i7 O! Q9 U) X
- R5 v+ e8 J' ~2 D _- ;; Not dead message...
. r& g: |6 a+ u - (if (= (/ ltype_number 50.0) (fix (/ ltype_number 50.0)))
6 {( k- t+ O: N1 j* D; _7 R( ] - (set_tile "error" (strcat "Collecting..." (itoa ltype_number)))5 m, g+ K% p- h* P
- ), P, s$ I9 c1 }' T4 O1 o2 T
- (setq ltype_number (1+ ltype_number)). B( ` I6 P4 N8 z8 o# v
- * ~# P/ P+ Z# a2 g' k; U2 `
- )6 Q6 V) x3 J! ~" Q8 H/ W. I
- 6 b# }) I# l7 Q- w8 a
- ;; Remove Collecting message.- N0 X$ [8 e- f5 J! Y/ b( e d5 k
- (set_tile "error" ""), Q' Y# ?* I; Z6 O: X+ h- {
! o8 S: r h' I" b- ;; Sort based on maxsort.
: E8 j5 f$ J( s0 X - (if (>= (getvar "maxsort") (length sortlist))3 G# q( M/ O! z6 U9 l
- (progn' {7 F* @& O x
- (if (> ltype_number 50)
! u7 F. n& p* ]% z* P5 y# [% d - (set_tile "error" "Sorting..."); y0 v4 i7 W) G8 [' P3 p" I8 {# l
- )
9 o7 v/ @3 S+ v6 F$ c( l - (setq sortlist (acad_strlsort sortlist))3 z; R4 a, r9 _& }
- )
6 e& e: G+ Y+ w) B# G - (setq sortlist (reverse sortlist))
# ^% g' k; A# y6 H0 d5 o; _0 b - )# F V2 j$ Y+ g2 l
- (set_tile "error" "")
9 `2 Y. Y7 I- W - (setq ltnmlst sortlist)
( Q# t( n+ Q3 \ - - }2 D9 W. A- I8 B
- (foreach ltname ltnmlst
6 D) d4 j2 Y' z6 w. P) g- T - (setq ltlist (tblsearch "LTYPE" ltname))/ S$ p2 O' `& V o
- (if (= ltname "CONTINUOUS")' L* L; X% P( H% H3 V+ u( Z3 b% C5 @( s
- (setq mdashlist (append mdashlist (list "CONT")))
; ]# x9 W/ d" X" h) y - (setq mdashlist
/ ~0 {) B: ~2 c+ N+ e - (append mdashlist (list (add_mdash ltlist)))' A' ~) |4 p' M2 d7 s2 I
- )
& d& M% b- K5 s) S7 w8 O - )4 h( p% a+ E4 o
- )& F2 z5 ^& F7 R1 ]4 h- G7 o; f
- (setq ltnmlst (cons "BYBLOCK" ltnmlst))
- u x% K/ w" H* P' g6 m! m, c8 c - (setq mdashlist (cons nil mdashlist))
8 L1 H7 h; I* l% c8 F. @ - (setq ltnmlst (cons "BYLAYER" ltnmlst)) a% A# d d. K+ \% I
- (setq mdashlist (cons nil mdashlist))
! h+ q4 [ @ \, y5 s - )! R! A6 x% H( q1 V, _
- ;;8 W! @9 Y8 i7 u2 ~
- ;; Get all the group code 49 values for a linetype and put them in a list
/ F% w# ]: c0 [5 B4 N; g& ^5 h - ;; (pen-up, pen-down info).
/ O1 B; v0 M- U; D2 ~ - ;;) c# n9 w( W9 u, P
- (defun add_mdash (ltlist1 / dashlist assoclist dashsize)# o& Q2 {' L: h- U% I
- (setq dashlist nil)0 V, ?: |- A3 O3 S3 T, E; ?* X
- (while (setq assoclist (car ltlist1))8 v/ f7 a' i! Z/ N+ ]
- (if (= (car assoclist) 49)
# E$ I) ^$ W4 |* z. O! M% J+ ?! c/ U - (progn
# d. u% R* ]0 n) l8 C3 ~8 B B$ Z - (setq dashsize (cdr assoclist)), ^0 ]* S. t2 Z/ o, p' D
- (setq dashlist (cons dashsize dashlist)): F8 @3 q* E& k3 O' t
- )1 H6 z; }. k3 K9 c: G; b( b8 y4 S
- ); J0 q5 ^& w, {" u$ R( Q3 ]/ C2 p
- (setq ltlist1 (cdr ltlist1))
1 u4 `( s! ^: j( {( y8 J - ) @6 q+ @* W4 A' |& {' p5 `
- (setq dashlist (reverse dashlist))
, Y& s: O- B! d2 M/ g( v/ s - )0 y$ x- `1 |$ _6 y
- ;;' ?% ?1 H) ^# h M: [, l
- ;; Color a tile, draw linetype, and draw a border around it7 T9 a0 W* ^2 g8 j+ U
- ;;3 \( r- F2 \. ~& f7 m
- (defun col_tile (tile color patlist / x y) k- @& I9 C0 Q! Q
- (setq x (dimx_tile tile))
& Q) v2 t; I$ g- c - (setq y (dimy_tile tile))0 ?+ B1 l( m2 u) P- ?9 N L
- (start_image tile), M3 H, k- S8 z/ I* g! A
- (fill_image 0 0 x y color)
# c& b5 x9 P' z5 ?0 x - (if (= color 7)% t$ j+ a3 f6 h8 `# z
- (progn
- E+ E8 t+ q5 c% |. q% _ - (if patlist (drawpattern x (/ y 2) patlist 0))
% @$ E9 Z. H/ Z1 ]1 S* l - (tile_rect 0 0 x y 0)
9 L) w! G. o& y5 O - )
7 u6 c1 ~4 e. O7 J0 u& x' d- N - (progn
5 u3 R# d( _# \+ u* L) G: W - (if patlist (drawpattern x (/ y 2) patlist 7))8 \* x: Z" R! I* P! ~9 A
- (tile_rect 0 0 x y 7) a7 z1 X+ a! B( h9 B# g
- )
- S! r5 x, G, d$ o" ~ - )
" K2 }* m" D' Q) M- {9 O - (end_image)1 g/ Z, ?2 B/ q" j! d
- )5 D8 ^: X9 N2 I. \# E, f
- ;;- v3 ]! d& s" u' \$ U
- ;; Draw a border around a tile$ n. y- T( D6 T0 z
- ;;4 n0 X2 u* @$ q% @ X, n
- (defun tile_rect (x1 y1 x2 y2 color)/ v5 e& s+ X$ N
- (setq x2 (- x2 1))
' M0 g- \5 T1 m0 O8 ~5 l9 [2 c - (setq y2 (- y2 1))$ q" g* W4 J0 X
- (vector_image x1 y1 x2 y1 color)
6 A" x9 e- C: z+ x - (vector_image x2 y1 x2 y2 color)
% a0 T- U, @& g3 \ - (vector_image x2 y2 x1 y2 color)/ g, B( n; t- W( \9 l% F
- (vector_image x1 y2 x1 y1 color)
F1 n; H. g2 X5 e( \; L9 l: M - )
}/ P+ F% z- Z" k) a+ g" N$ ?: S" r q - ;;: O& g4 L$ L$ v/ E2 L k6 f9 \
- ;; Draw the linetype pattern in a tile. Boxlength is the length of the image
8 U; `/ u) B. K$ F( d) a: o& G# K - ;; tile, y2 is the midpoint of the height of the image tile, pattern is a* T5 H3 b# I: A4 ^, t) X _
- ;; list of numbers that define the linetype, and color is the color of the
* M( f3 {& ^- h; G - ;; tile.$ t, X6 h& i9 m) s; N. n( W
- ;;
% Y/ t h% x+ Z% l2 a5 ` - (defun drawpattern (boxlength y2 pattern color / x1 x2$ U1 E# }0 _% m0 V, [ l
- patlist dash)
( H7 U1 M& m+ N% p( O5 k( h' E2 K - (setq x1 0 x2 0)
; b6 z! N) A' p' o/ p - (setq patlist pattern)3 r ?9 o- f; D$ r
- (setq fx 30)
4 H2 j! M1 f3 {8 U( z - (if (= patlist "CONT")$ Y3 E# s) | o7 j6 \
- (progn (setq dash boxlength)
+ i' p/ N Y# \' W! m5 n% P+ K - (vi)
. M& q7 {$ W! l x" Y% F+ p+ N - (setq x1 boxlength)
3 O: r& W) J: o6 Q- K H - )# |! Y: g4 t- ~2 U2 i8 C6 u( x
- (foreach dash patlist! L3 \) e7 Y3 R" } [
- (if (> (abs dash) 2.5)& N9 P a/ V7 N1 i7 u. Y" b
- (setq fx 2)
+ N* m# u: o! l/ R" i - )
, p+ ~. }2 x. l - )6 I8 Y- ^$ b; J, K `& X
- )6 x. q" W! G f' Z2 j
- (while (< x1 boxlength)3 @8 V2 U5 o6 p8 v% r5 B
- (if (setq dash (car patlist))
" ^) ^7 y9 W& D - (progn
* L- `0 K, @( C - (setq dash (fix (* fx dash)))+ W2 v) X! Q/ \8 C( z- `
- (cond% ^# I( c" n* s
- ((= dash 0) (setq dash 1) (vi))
2 ?! K' _7 l1 D& c& {( k - ((> dash 0) (vi)). F; H* ^' |6 l
- (T" S* e( S$ ]9 g
- (if (< (abs dash) 2)1 _! q4 m7 v3 J5 M: C: p
- (setq dash 2)
5 V- B A( z9 S' t# P4 j+ | - )
: t- n E' s! g2 {/ C+ u0 y) W - (setq x2 (+ x2 (abs dash)))' x' d1 K: w: U; W
- )
* d( n z [4 G' I - )3 v/ q, ~# l4 D3 Q
- (setq patlist (cdr patlist))# ?- e. U2 }) h) D6 \8 a; J
- (setq x1 x2)% G# g- f. x/ D1 \; x
- )/ J2 F5 @5 e2 H" C* |3 B
- (setq patlist pattern)
# Y% S- `9 f g! Z. T8 G) B5 p - )
* F0 v7 E) M5 n) P* Q - ), n4 U+ k# w! M# N3 p
- )$ q5 s) ?' V+ p& u
- ;;' ?* f8 P% D# j
- ;; Determain state of xclip
) d4 \3 @$ B( J1 f' r% ~9 C: x - ;; Returns the group 71 value of the spacial filter dictionary.
0 s+ D/ x# B" K. c1 d - ;; If the entity doesn't have a spacial filter dictionary, this7 z% L3 M. J) @# t
- ;; returns 0. If it does it will return 0 or 1 depending on the
( F# x& a: @" h. {3 N: Y! g - ;; current setting of the state of the clipping visibility.
+ f$ U6 s) ]# ?+ w* I - ;;
% n. L1 e5 B. y0 n - (defun xclipon(elist)0 _3 ?: `; c9 P7 u- \+ N3 t
- (setq hasclip T)
! m% \7 t* {" L - (if (/= (assoc 360 elist) nil)% {' q9 n! ^ a& q
- (progn
1 m# y7 B6 V4 S6 a6 H. |) a - (setq tmp (entget(cdr(assoc 360 elist))))! w' |* y* l7 z! t Z q
- (if (/= nil (assoc 360 tmp))/ y: W! b, M9 g. I: J, n
- (progn7 P. t; A$ ]* l* R' T: x
- (setq tmp (entget(cdr(assoc 360 tmp))))
3 a- \+ Z' H+ U3 e - (if (/= nil (assoc 360 tmp))
* ?( h3 c2 I. y( F% m2 O/ D: I - (progn
; W, L8 J+ O$ t3 \ {9 W - (setq tmp (entget(cdr(assoc 360 tmp)))), d" F: N/ U2 D! i) I; k
- (if (/= nil (assoc 71 tmp))
% b0 U2 {- w4 }% A# z& s - (cdr(assoc 71 tmp))
# f( U8 z8 q9 n2 O - (progn " j8 w( n8 h: |9 _
- (setq hasclip nil)
4 y S# f+ d& `, X - (eval 0)6 g9 O1 K' r# h+ o
- ): n, X1 H$ N5 R2 g4 s& W- v0 f
- )( s9 W# u8 j% T2 j* `5 a+ c y
- )8 s7 K2 f; s1 S5 F7 C# L
- (progn
4 E3 Y! h) b( R% X2 L9 @" k - (setq hasclip nil)( H/ e7 `1 T& W6 a5 D: p5 e
- (eval 0)
' c2 f% N/ G& |" R6 x$ j: y6 Y% y - )
8 X, c. V p& J0 Q, S1 B, B8 ` - )2 |+ w0 z+ {- p4 N. ^
- )
! s* H; y8 I. g* G. }/ k - (progn 1 Y q7 K+ h8 h1 v( G3 \2 n" w! L
- (setq hasclip nil)
6 r( S, v6 ^( r9 |! g: k - (eval 0)) ~+ x, H; y* r% X% Q i
- )
6 l C2 [( n$ I, \ - )
* L" p" R0 z9 i - )4 e+ l4 P6 s- W, g3 y9 a6 J
- (progn 5 I- W. E& n2 X2 R! w
- (setq hasclip nil)
' d3 L1 f! t% ?) A9 Y - (eval 0)- z5 S- [, m" c1 M
- )0 W( A0 B* i8 t* s1 j# c2 Y
- )! _) }7 u% ?$ q, N
- )
: ]" D+ i* ^; _9 C - ;;2 U6 H' q* A; T* H" Y( l, l- y
- ;; Draw a dash or dot in image tile
: R0 u2 b/ @2 X. T: H - ;;- m& t; C. o% o. g+ h' h: A
- (defun vi ()5 t' K, C+ J8 X8 [ ]0 n7 x& [
- (setq x2 (+ x2 dash))
$ ]/ k% B1 Q3 y) F0 Y s - (vector_image x1 y2 x2 y2 color)
6 D1 Z; O3 Z G! `' I) u; i3 A! C- W0 ] - )
8 G9 h" s+ A8 M' E0 k$ }2 P! T - ;; r; Z4 l9 }7 [& |; h: v
- ;; If an item is a member of the list, then return its index number, else
! d, A+ o) w! H, o! N; x - ;; return nil.
5 Z0 A( K1 Z& }' G - ;;
8 U5 r1 s/ I/ @4 B' V2 m$ ^! G - (defun getindex (item itemlist / m n)9 v; m0 P3 C1 \4 Y1 K" f
- (setq n (length itemlist))
$ s9 O/ U& T5 c, D- Q: o$ @7 n - (if (> (setq m (length (member item itemlist))) 0) ?) H9 N8 u) q! Y& }% D+ y% E
- (- n m)( F8 p5 c& D. m$ Y! _* ?
- nil5 Q2 s' d0 f$ ~& L E6 G
- )
4 f& j7 F+ M& ]+ R. A0 o) D - )
8 p3 _2 d Y" U: b - ;;0 _7 J/ c& v, X* M$ W9 S
- ;; This function is called if the linetype is set "BYLAYER". It finds the
, G' b0 O8 t S( l' N - ;; ltype of the layer so it can be displayed beside the linetype button.0 v% y/ E6 i* ~6 P# y: b
- ;;
/ R1 @2 x; _ l- C8 [ - (defun bylayer_lt (/ layname layinfo ltype)3 M: B# M2 V* G* q0 ?9 e
- (if lay-idx
2 B; w$ N6 R0 r+ z* t - (progn
Q: L5 ]6 d5 P - (setq layname (nth lay-idx laynmlst))
' G3 _/ @' I/ T2 g# f* P W* \7 | [ - (setq layinfo (tblsearch "layer" layname)) J+ l& k; R5 z( f" `
- (setq ltype (cdr (assoc 6 layinfo)))5 d# j& T" E9 A1 m# \$ J/ a
- "BYLAYER"
! U) X5 `0 l& o" l' j5 s" f - )
+ u# u2 e. e# v" @3 S# r- O$ Q7 ^ - "BYLAYER"
5 N5 h7 W( |, \2 m; u - )1 \; H' V2 D; `; |
- )- K3 I* |* Y7 L2 c. A/ D( Z5 c
- ;;
& ?; Y8 e6 f* Y# ^ - ;; This function is called if the color is set "BYLAYER". It finds the color' D( l1 X: q, ~; V0 ~
- ;; of the layer so it can be displayed beside the color button.
0 H) n7 O: Q$ E" g6 X/ {2 Y$ ]+ C - ;;0 T: j v5 P9 T& a* r. h' t$ ~; W/ A
- (defun bylayer_col (/ layname layinfo color)
& N6 d" B& N6 m& c x - (setq layinfo (tblsearch "layer" elayer))
V# q* w7 s2 z) r2 x - (setq color (abs (cdr (assoc 62 layinfo))))
" Q: a L/ Y1 F) y& i - )
# g1 T/ b z: f4 E# E" G( C - ;;) s- l1 c7 a# k* |/ \# M- T( q
- ;; Used to set the color name in layer subdialogue.
# Y7 I9 X u; V+ y# F - ;;
- Y' |' S1 u+ p+ f6 g* c - (defun colorname (colnum / cn)" b) q) \7 c2 ?: o0 _: k& n
- (setq cn (abs colnum))
4 @) q9 u+ T: M% ^7 `* w9 w3 f5 Y - (cond ((= cn 1) "red")& `. Y% h3 Q# ^) [! r4 K! S2 [
- ((= cn 2) "yellow")! _ h8 I1 {, \
- ((= cn 3) "green")2 `9 l" |0 n6 s' E) a
- ((= cn 4) "cyan")
5 ~# i" q9 U r. q4 I8 B5 N; h - ((= cn 5) "blue")8 O2 K* [3 O/ T
- ((= cn 6) "magenta")
, j7 Y& C* E2 @2 X- ?8 r) B - ((= cn 7) "white")3 l0 ~' N! ?7 U c
- (T (itoa cn))
4 X( L6 @8 H t( r2 w! j - )4 D; O) [; _3 z! F& r
- )
" ^8 n! L3 s r2 @* X - ;;( N3 V2 E k7 f' y! @% T" t. P
- ;; If their is no error message, then close the dialogue.5 j$ ?9 T) `% s- \" Q9 A4 d, b
- ;;: N" R" L/ Y# D! r
- (defun dismiss_dialog (action)
9 u# P+ H& [; n+ h8 k - (if (= action 0)' s* |- C9 s+ \2 B S
- (done_dialog 0)1 ?/ d( y+ `; N1 S
- (if (= (get_tile "error") "")
# [5 y+ v# X! L5 N2 Y - (done_dialog action)
) ?$ Q5 [3 S: _" p: B/ y - )
E3 I9 }- _$ \& \' S) { c - )- l$ o* N8 q& z' V
- ). }6 I @; B" q. Y: t3 W/ K/ h
1 l3 Q/ Q4 h; t' H- (defun test_ok ()) ]% B8 r! u( I% A2 F2 i
- (if (= (get_tile "error") "")' p2 d9 f2 W0 q0 g
- (done_dialog 1)
% x/ L5 P. x7 _4 A. @# Y - )
* x) G! E% [* q - )
4 C1 Y& J A# ]. p* c: q
, \: _( d4 a7 q& x$ B% P' T; X- (defun cancel ()
! _$ H4 z, `8 |9 [6 V9 u, ]1 U - (done_dialog 0); v; I( r0 e1 ^
- )6 u3 t2 G* j; `- o7 M
/ ?0 Q2 |; f2 G3 k- S- ;;; =======================================================================
/ i. @, r" j; t; f- P6 Y4 h - ;;; SETUP layer and linetype lists for application, and initialize all* `( U" }$ S& a) [- M
- ;;; program variables.
: U1 c. {& P; _0 u) v! k5 d+ g+ Y
* g9 v' q: ~7 N0 A! N- (setq elist (entget ename)& _* ^3 T! p2 u, m. c3 E
- old-elist elist2 [1 x6 E# @- B8 h- k' |
- modlist elist
; r# e/ W" z0 B* v& L* l6 V8 z - etype (strcase (cdr (assoc 0 elist)))
1 w) J- S+ q2 [! A: A( T8 { - ecolor (cdr (assoc 62 elist))
; X8 }, \, |% `% q/ J5 m - elayer (cdr (assoc 8 elist))
, U9 ^2 E# E2 Y- K F- \8 ? - eltscale (cdr (assoc 48 elist))
3 i& _, A' X9 L: N7 y- l4 B( U - ethickness (cdr (assoc 39 elist))
* B1 G0 y% c4 K - eltype (cdr (assoc 6 elist))
1 i3 \" P$ @0 N6 x* G - )4 R9 l# ^5 l" K
- (if (= (assoc 210 elist) nil)
( H# i+ c# M' l' b9 C - (setq extru (list 0.0 0.0 1.0))
8 H: J, i9 q: U9 l: B - (setq extru (cdr (assoc 210 elist)))
T/ s8 o2 I# y/ _3 I - )
/ v; N4 h1 M6 ^' R - & ^( h- S3 K, A4 O4 m
- (if (not ecolor) (setq ecolor 256))
, D6 }' }) y& R7 _7 x - (if (not eltype) (setq eltype "BYLAYER"))
4 v9 e: F. a! v* C% F - (if (not ethickness) (setq ethickness 0))3 J8 N% x# X6 Y
- (if (not eltscale) (setq eltscale 1))
& ]! p5 A/ ~9 _9 Z4 y - ) ; end ddmodify_init$ A" H& g4 g( l' O! f) J
- 3 N- D% H r1 G) h. y0 i
- ;;; --------------------------------------------------------------------------
& L) o1 {8 K+ m/ O% p9 l - ;;; Function: DDMODIFY_SELECT2 T+ h; c/ V4 G- l/ R' Z1 d
- ;;;
1 f6 s2 G6 C5 F7 o3 _" r% U - ;;; Object aquisition function.5 n6 t8 A9 P( v# M" n7 \
- ;;;
5 d$ I7 y7 k. Q& F; B+ A7 I - ;;; (ddmodify_select)
4 w9 q' l. i* J9 o, G, p7 Q - ;;;
* _9 S4 j5 G3 {: h. W0 k% k& B - ;;; Obtains object to be modified, in one of three ways:
$ W$ r5 ^! ]0 i# G# E( R - ;;;0 o* R' ] j* N! ]: d' a" x! Q
- ;;; 1 - Autoselected.
# r) b _3 z# A. a - ;;; 2 - Prompted for.1 Z+ s* N: W- C7 w6 n% {
- ;;; 3 - Passed as an argument in a call to (ddmodify <ename> )
7 a) S, q) I3 t2 k: n - ;;;9 X- R9 E J) y; i% o
- ;;; The (ddmodify_select) function also sets the value of the$ c. a: @) F+ V) O5 [. l
- ;;; global symbol AI_SELTYPE to one of the above three values to
$ a8 W7 {9 m6 k2 U - ;;; indicate the method thru which the object was aquired.
. h, Z, y" @, }: J# R. m& ` l" [ - ;;;$ \( j6 @' A6 i |
- ;;; This value can be useful to applications that want to RESTORE
0 G' \) C. U E: X8 z - ;;; an object that was autoselected to its previous selected state
! a) b4 I) o6 \1 f - ;;; when they terminate, although there doesn't appear to be any8 W% ~% v! L1 o k
- ;;; way to do this right now.
! V& u D) p: j) b, v - 1 [" i: y# g; b; | R9 I/ q. ]( m
- (defun ddmodify_select ()& ?2 ^; G1 Z9 [
- (cond
; @8 j+ f. f% G - ( ename ; (ddmodify) was called5 ?" u& n0 R8 A5 ?
- (cond ; with an <ename> argument! K# k) h: `% X) e/ t
- ( (entget ename) ; If object is non-deleted! U1 h/ f0 G1 H7 {8 K6 S5 W
- (setq ai_seltype 3) ; then return its ename.
' _+ t. [8 Q, a5 g - (ai_return ename))))
8 i z& R/ T" d4 e9 R - ' P& N$ K" n$ F
- ;; return auto-selected , see ai_utils.lsp1 O5 M% f2 e% S8 V* t# p% }3 l* c
- ( (ai_autossget1 "\nSelect one object to modify: "))
+ Z& F3 |- d. j; y0 Y, {
' ]. x# M) m, p( w+ h+ F4 V- (t (princ "\nNothing selected.")
6 h8 R% A3 v8 |; N - (ai_return nil))8 E, |4 e& G: k8 l7 m$ h3 O
- )3 \" E* G6 U* y1 T
- )7 V+ d* X2 X' x6 I
- 7 N o6 e' R- ^3 C) l( B
- ;;; ============= Command line interface function =======================
. V: D, j0 Y: D; n( g2 @ - $ n8 F0 i* p" d
- (defun C:MMO ()8 B+ `: R- ^2 U# k
- (ddmodify nil)
: O, Z: H# Q& ]* H/ Y2 z8 Y V - (princ)- g9 K$ L: w5 ]6 B* `- p
- )
* h* x) m5 S( a. j; V" c' g
* L8 ?8 y9 |2 P: B) D- ;;; ================== (ddmodify) - Main program ========================" Z8 J1 X7 P" U# i
- ;;;4 p( e$ c* l, ^. R" ]
- ;;; (ddmodify <ename> )# V j6 ~6 u! V
- ;;;" A7 L4 V) l$ g+ B
- ;;; Main program function, callable as a subroutine.% \# L$ I8 o% n8 b* v: N
- ;;;" c* k l( b- u# ^$ g/ n3 h3 ?) V/ L( T
- ;;; <ename> = object name of the object to modify.
; m& F' ^, {: J" d" | - ;;;' e) h- P+ ^0 {6 l1 {& @2 Z4 r
- ;;; If <ename> is nil, then user is prompted to select) m/ k( e( a6 o0 V6 }
- ;;; the object interactively.1 w, O) l& Z; U/ P
- ;;;% ?0 d8 V& Q0 f8 D2 @/ b4 L/ L
- ;;; Before (ddmodify) can be called as a subroutine, it must
/ t# F' N- c! Z: N3 f; T4 g6 p - ;;; be loaded first. It is up to the calling application to
0 _" Y; q0 o$ r7 Y - ;;; first determine this, and load it if necessary.
( Z% c0 @9 K6 J e4 n - $ L6 F" M C: T
: A, z5 y; z% t% t; g- (defun ddmodify (ename /
3 T4 w; X4 v w - 2ndpt ell_calc_area move_pt1 templist
0 G: s3 @8 g! Q, H& C, W- @ - add_mdash ell_tile n tempmod0 t; t. ~2 {+ j9 Z4 k
- alipt eltscale name tempst_ang
, K' ]1 V( `3 m' K; Z$ L) J - ang eltype newpoint test_ok% L' R _- k1 G8 t
- arc_calc emod next text
& d9 W% W) b! a* |$ N9 f - arclen end_ang next_vertex th-value
0 K* P: A. ?* O, E6 F& t% F8 m - assoclist endpt obl tile5 _2 A- q3 A! A3 Q
- atprompt errchk off tile_rect
5 D" s' ^% b$ Z j& ^* [8 \ - attag ethickness old_majrad tilemode; c3 Z% P0 f8 E( }
- attprompt etype old-closed totang
( k) v* r9 @# ^; m% V T9 N, T - bit extru old-closedm tstyle. P; k7 x4 ]; R
- bit1 fchk old-closedn u9 Y, L& c& F. F2 E: w
- bit-10 first-10-rec old-elist undo_init
5 Q2 H# Y1 O9 T# O - bit-11 first-10-time olderr upsd. W1 j2 `7 O9 q9 Y
- bit2 first-11-rec old-fit v
, l2 V( ~( v- ^4 A - bit3 first-11-time old-idx va0 p, e( h4 S$ C
- bit4 fit oldlist value& z0 |! o# _5 p# ]4 J
- bit70 frozth old-spltype ver_4+ L. [: D5 h) d" x7 ^
- bit-70 f-vis old-u ver_ang1
1 q$ k& J8 h, N" V [ - bit75 fx old-v ver_ang23 m# h5 X; Q' n( n3 ?
- bk-up get_color on ver_col/ a8 _& I A% ^* W& V) [
- bkwd getcolor onoff ver_colsp8 @- a" o. t/ `2 `, o8 K
- boxlength getindex on-off ver_eangle: D [, T+ }1 h& W8 h- C
- bylayer_col getlayer patlist ver_hght
. N$ {, w) g+ v" a8 r- G2 n, @ - bylayer_lt getltype pattern ver_majrad) D/ }" R" S2 ~- {( m
- calc getthickness pltype ver_obl" X6 y1 f* P S3 L! U
- cancel globals polytype ver_pt14 r9 m- W* y. L
- cir_calc ha pre ver_pt2: P4 I% [2 f: }$ u* A9 d+ r
- closed ha-prev proplist ver_pt3" R% d4 q, v6 ?: A0 j w
- closedm help_entry pt ver_pt4) k* s2 J R. ~, K! g
- closedn hght pt1 ver_rad
+ X/ O- `. r' @( {1 u4 v0 ~ - cmd icvp pt1_eq_pt2 ver_rot* M* V( E' o2 w
- cn image_add_vector pt2 ver_row0 C& }; Y3 E8 q) f5 f
- cname image_clean_variables pt3 ver_rowsp
( D% y9 o! \" R+ u, o. [! S4 B) e( _ - cntl-pt-indicator image_cross_product pt4 ver_tag
$ i$ z" |( ^& {! P- O# ?6 b - code_71 image_disp_opt ptype ver_u
7 C5 a& I. y3 Y3 h# k& x" Z - col_tile image_dot_product radius ver_v
& W# t! _, g; _9 j9 w' z - col-idx image_normalize_vector rational_spl_flag ver_wid
) i0 n4 @+ A( y - colname image_rotate_vector reset ver_x1- X' o/ h! w5 t4 f; f( s
- colnmlst image_scale reset_flag ver_x2# I4 y9 K% N" }. O0 C& n$ I( E3 i
- colnolst image_scale_vector reset_lay ver_x3
6 C. v9 W0 ]6 B6 O - colnum image_update reset_lt ver_x4' X% v0 |5 ^$ x( h6 k9 P# t& Y
- color index reset_uv ver_xline_pt17 L( c) z, d7 x( G6 }1 X
- colorname inv rot ver_xline_pt2
; E9 V0 G1 v' w' [# u- _) I - colorno item rows ver_xline_x1/ \+ z+ a% y3 i, X
- col-sp item1 row-sp ver_xline_x2, c2 g" Q9 z# y& ^. N! L. H
- columns item2 rrat ver_xline_y14 K3 G' K" B: J$ O0 M8 O
- con itemlist s ver_xline_y2% h5 f0 ^. {5 k2 `; e6 H
- coord jlist set_action_tiles ver_xline_z1
3 [2 _* ]( h4 M; M) z - ctr jlist_act set_just_idx ver_xline_z2
; G0 ^3 ~9 F0 Y# o - cur-10-rec just-idx set_tile_bk-up ver_xscl
; t1 {7 b7 V9 X9 L+ ] - cur-11-rec layedit_act set_tile_cntl_pt ver_y1
5 e3 _& M9 Y4 M9 p' p7 A6 [+ Q - cvpname lay-idx set_tile_data_pt ver_y2
! n5 Q) Q- m) G. q7 X u$ M4 V - dash layinfo set_tile_dirv ver_y3
, s& M, }! O" K - dashdata laylist set_tile_edges ver_y4" s1 G5 F; F% c
- dashlist laylist_act set_tile_endang ver_yscl
+ l9 p) w7 |/ J; z1 s - dashsize layname set_tile_hght ver_z1
6 n7 K: |8 z! R0 E d" M - data-pt-indicator laynmlst set_tile_icvp ver_z2% U0 g! u% a( `; ^3 ]/ t: g, R
- dcl_id layvalue set_tile_just ver_z3
2 h/ Z4 s$ U) k2 k+ c9 y, } - dd3dface line_calc set_tile_obl ver_zscl: X3 ~1 I4 E0 \* `& l3 n. v" C
- dd3dsolid linetype set_tile_prompt verify_a; c" K+ Y8 R; z1 @0 n+ }
- ddarc list1 set_tile_props verify_d
$ r- j1 S6 [6 {7 Q- w - ddblock longlist set_tile_pt1 verify_i
6 ^5 [7 |3 c6 v - ddbody ltabstr set_tile_pt2 verify_xline$ m, v# Z1 G4 w: w+ f o
- ddcircle ltedit_act set_tile_pt3 vfy
( |* Z0 E! W4 Z, [6 X - ddellipse ltidx set_tile_pt4 vi
0 t. L+ u4 {1 `& l6 F6 Z - ddgetprompt lt-idx set_tile_rad vlist1 \, @0 C" ]9 L3 i/ _: p4 l9 i/ N5 h
- ddgettext ltlist set_tile_rc vname2 R6 p* v9 [+ [1 ~
- ddimage ltlist_act set_tile_rot vpf
7 B. a2 P+ Y( _4 w) K, a - ddimen ltlist1 set_tile_scale vpid1 R% ]' D1 G2 P* \, T4 }
- ddleader ltname set_tile_spline_props vpldata
; {3 J/ j7 s+ [$ P+ F: L- e5 v1 G - ddline ltnmlst set_tile_stang vpn/ a2 A; b$ ^& M2 h
- ddlist ltvalue set_tile_style vpt
: f% Y! t9 c1 e - ddmline ltype set_tile_tag which_tiles6 ^/ H6 c2 e" M! Y) d2 h. ]
- ddmodify_err m set_tile_text wid
, j1 d" S5 F" g! ]% t2 X - ddmtext majrad set_tile_vpt x
4 A9 m: Z; z5 x ]0 b6 E - ddpline make_lay_lists set_tile_wid x1( |, X$ d2 P* m% @* u0 Z/ g
- ddpoint make_lt_lists set_tile_xline_pt1 x2
: |: z1 p( U. J: Z& L - ddray mdashlist set_tile_xline_pt2 x3$ I P7 w$ L; O6 C3 u; ?% v
- ddregion minrad setcolor x4
8 I6 [. X8 d* w4 o: \$ q. @8 c - ddshape modify_3dface shght xdlist& y, O$ t/ M4 i' R0 s
- ddsolid modify_3dsolid showpt xline_pt1& Y. z9 ?# `" U9 J$ P
- ddspline modify_arc size xline_pt2) h6 c! h. B5 U! w0 e3 v( x
- ddtext modify_block slist xline_x1! Z: W5 ~( |7 T) |
- ddvport modify_body sname xline_x23 d7 ?( D# L) b* Y. C: y
- ddxline modify_circle sortlist xline_y1& \ T9 f! B- c
- denom modify_ellipse spltype xline_y2
& A' J: J! ^: F3 i4 P" a5 L. E0 z - dialog-state modify_image ss xline_z1
$ I- j+ r# @& W7 F. g# G$ n - dir_pt modify_line st_ang xline_z2
# v! w" b7 c" P4 y R - dir_ptx modify_mline stpt xscale; n& \+ M) W5 l# j
- dir_pty modify_mtext style_act xx
3 a; E( e' E9 w! k4 C) ^6 p9 } - dir_ptz modify_point style-idx y2 f/ C2 r7 G6 { } ?; B* g
- dismiss_dialog modify_polyline style-list y1
! \3 t0 `7 `; I9 j4 R' }, M8 { - drawpattern modify_prop_geom tagval y2 v5 m/ g* X9 i2 U4 ]& \/ {& `
- echo modify_properties temp y3
& h. o2 X. ^% }! \1 u - ecolor modify_ray temp_color y49 ?& l' t5 L$ X7 F6 b" R. m
- edge1 modify_region temp_dir_x yscale
: \1 s1 j9 _$ m1 j0 R - edge2 modify_shape temp_dir_y yy
+ {. r$ E& W5 F, L$ i - edge3 modify_solid temp_dir_z z1
3 R" X5 H4 V/ ]9 O% f6 D5 A - edge4 modify_spline temp_xline_pt1 z2
- l3 S5 F0 T+ |7 w+ ^3 a* N - edgetest modify_text temp_xline_x1 z3
% z3 G8 S$ T+ b: {- R4 U+ G! i - elayer modify_vport temp_xline_y1 z4
2 w" g# A' Q o% D% i; N" h# M2 ? - elist modify_xline temp_xline_z1 zscale
% N/ {( O' Z8 I; s. r - ell_calc modlist tempend_eang zz: P5 T! V( d6 w' B* c: B: l
- dir-idx safe_ddedit ver_MtextWidth xcliponoff5 |1 y- q, o" @
- MText_style! o4 L6 Y% I" q
- )$ `! y" ^" }+ k! M8 K2 T3 K1 _
- 5 D- `+ m8 ^7 J' e4 [
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho
+ ^% f/ b8 K1 n$ v9 ]" f - old_error *error* ; save current error function
9 z0 x5 p$ k' r: W - *error* ai_error ; new error function
8 b& M ?1 e2 _* f, ? - )' I, G- E1 y- ?' ?1 j
- X- \* O$ d! P# x0 |
- (setq old_pickstyle (getvar "PICKSTYLE")) ; save old pickstyle
" a6 H8 [* n' J# Y/ N; k - (setq new_pickstyle (logand old_pickstyle (~ 1))) ; turn off group selection7 h) s. L7 f$ J
- (setvar "pickstyle" new_pickstyle) ; bit and set to new value
. L- n4 N% a4 m7 |
0 p+ E" F/ J2 s# N6 [2 r7 L6 T9 N- (setvar "cmdecho" (cond ( (or (not *debug*) (zerop *debug*)) 0)
* U n) _! D- G5 f( @, m3 x - (t 1)))
. H+ N+ Z( ]) u: ^8 Z4 b8 V- k. V - (cond
6 O" S) Y/ _) Z( f# C4 J- i - ( (not (ai_notrans))) ; Not transparent?
" }% p" j6 R7 k - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?
* y# E* l2 k% L2 \ - ( (not (setq dcl_id (ai_dcl "ddmodify")))) ; is .DLG file loaded?
6 R4 J. D% S$ P7 m- H - ( (not (setq ename (ddmodify_select)))) ; object to modify?# `5 `% u) }+ }2 q/ ~8 I! u1 }
+ @! s. [8 \' h) H, S- (t (ai_undo_push)* B0 f$ d! I& R. X
- (ddmodify_init) ; everything okay, proceed.
: u8 Y: R6 J1 `( ` - (cond
0 U8 X' H8 T3 b9 w+ j - ((= etype "LEADER"): p3 G: n, Z+ Y, T$ M9 m
- (setq help_entry "modify_Leader_dialog"); d7 S; w% p, b3 e% r* T. Z7 f
- (ddleader)1 b% r& v% D' e0 b
- )9 l" W( j* q( y. m
- ((= etype "ARC"); t ^. `* `7 `8 g; x. |
- (setq help_entry "modify_Arc_dialog")+ X' n8 n- _1 \9 s: L6 B8 P) o
- (ddarc)
) w! x9 ^" g. e2 F9 u. V2 I8 Z - )
( a% `/ R+ f( e0 q% B. W - ((= etype "ATTDEF")
/ s2 V1 x( n) q- p% s - (setq help_entry "modify_Attribute_Definition_dialog")
& ^' U5 c3 _' P M/ L' ]; ?. n6 G - (ddtext)
" f0 P& C% y7 K& ^5 c1 }% ~' V; r% z - )
( h7 g2 D7 S% c) q - ((= etype "CIRCLE")3 L4 X* h# r n- r+ l% c
- (setq help_entry "modify_Circle_dialog")
) A9 T7 n9 [+ d" G3 F1 u - (ddcircle)" K& L- I \2 n! b8 U
- )8 [+ m9 R% u b5 F/ h/ g& k* j
- ((= etype "ELLIPSE")4 J7 x i, \; h( j; ?1 ]
- (setq help_entry "modify_Ellipse_dialog")& I2 x6 F! u5 n6 A% o( [$ w
- (ddellipse)
! x' e3 {& t; K" C) B% o4 y - )
f' S+ y# ~* T5 a6 q! G - ((= etype "3DSOLID")* J6 U2 h3 C5 x! w1 k# H( t7 p
- (setq help_entry "modify_3d_Solid_dialog")
1 `. D# a, p* T- G: u8 ^ - (dd3dsolid)9 V! Y7 G0 ^- N% E$ f' w
- )3 L2 y8 V" M( J/ B3 A. O
- ((= etype "BODY") b" R" P3 v' Q5 N4 T9 K
- (setq help_entry "modify_Body_dialog")- A2 C3 @6 u3 b$ F- n
- (ddbody)3 _1 F. H3 F0 Z; ^( A* ^; W9 A8 Z
- )7 T+ b$ e4 m v
- ((= etype "REGION")2 @& Z1 k' E8 t! H& K' @# G
- (setq help_entry "modify_Region_dialog")
5 S: v" y8 ]" T' d+ @ - (ddregion)- P, I* c1 E. Y2 S: L9 L
- )) K8 x$ I* H) Z k
- ((= etype "HATCH")! O) Q* P" w" a4 l) x
- (setq help_entry "modify_Hatch_dialog")
/ M; o I5 y t1 Y% K7 ]3 y3 h - (ddnewhatch)6 Y& f9 ]5 C: b. J6 v" S9 y
- )2 y4 h: [& G7 N v) ^3 w
- ((= etype "SPLINE")
; J! S3 R0 G* Q! s - (setq help_entry "modify_Spline_dialog")7 Y4 G+ O- H" y, Z: M
- (ddspline)
" U5 U7 y. T' \! n - )
6 D- F5 G4 B; w; w8 ?) k - ((= etype "INSERT") ; see ddblock for help_entry
/ @8 ?8 l) U, d& E; E9 S - (ddblock)
% u" S( d# c8 c) I4 o1 { - )
' ~) `7 g, P8 x& J+ e _* k - ((= etype "LINE")) s' Z" Z" R1 t6 Q; `
- (setq help_entry "modify_Line_dialog")' @9 K+ e" B. O! t. o5 N
- (ddline)5 o4 @: H9 f! i0 q* q7 I
- )
' a/ }' i% I! }; K% l2 b8 x, Z - ((= etype "MLINE")" F7 H! P5 x! q4 k0 d' V6 c
- (setq help_entry "modify_multiLine_dialog")
+ f( }3 K* |3 p* c4 [& \: f V - (ddmline)/ ~% d3 Y k4 ~% `. s( P
- )
1 P2 W2 D3 x7 P8 D0 J* Z0 G - ((= etype "RAY")
) W6 _ T7 Q2 H$ r1 H7 ?, y - (setq help_entry "modify_Ray_dialog")9 F2 `, w5 L, }3 ^8 l5 v& N# `
- (ddxline)
" F) G2 a$ u. }/ ?# [3 o! b - )" J9 ^5 d" ~( N& E
- ((= etype "XLINE")& D: w+ I! q7 Y$ W1 _
- (setq help_entry "modify_Xline_dialog")1 i' Z) H- U5 ^+ g
- (ddxline)6 [ Q0 T( E. O/ C! |3 u
- )+ P* g1 L* Z+ [+ p* S4 T
- ((= etype "POINT")3 p* X( m T. Q
- (setq help_entry "modify_Point_dialog")
! [8 x! D% B9 G; E - (ddpoint)
6 t' V0 T6 _ x1 \: o4 H( ] - ); e. z% o* c1 n' o2 ~% P
- ((or (= etype "POLYLINE") (= etype "LWPOLYLINE"))2 [) u1 v6 }, E* \0 {$ A
- (setq help_entry "modify_Polyline_dialog")
7 |9 @1 C1 ^* A7 ?$ B* N T - ;; If a 2D pline, check to see if it is planar to the current
8 h9 A% C! U6 Q! b) P$ K( b - ;; UCS, reject if not. To see if the pline is parallel,
* K! M* L- F, w! z) c - ;; the 210 group (WCS) is added to the current UCS origin (WCS)
' V0 @- A, x& m: E& A - ;; and then converted to the current UCS and checked to see if/ k, z. W& O6 \$ e+ E
- ;; it is equal to (0,0,1).* N/ V. H; x: X1 |3 {' Z
- 1 x& U) R& A6 }
- ;; Incase the 210 is default and not in the dxf list.
n" B9 A8 Y2 s; u% Q7 I( ? - (if (= (assoc 210 (entget ename)) nil)
4 U% F& H# J; [7 z1 h - (ddpline) s2 x7 ?3 E' a- n# u H
- (progn
" T* E0 @( Y1 Y- B2 H- | - (if (and (zerop (logand 120 (cdr (assoc 70 (entget ename)))))
" o7 V' o) [' c8 j% S' p, i - (not (equal '(0.0 0.0 1.0), ~- l5 r+ G2 ?7 B4 b. v+ }
- (trans (mapcar '+
# Z- p+ T7 T; E( w. y3 i, H8 d - (cdr (assoc 210 (entget ename)))
# n# T% a/ k8 d- M+ A* u - (trans '(0.0 0.0 0.0) 1 0)) s. H% j1 Y1 Q: a; A, N! [
- )
; P0 b- e' O8 p( v! H {" V - 0 1
+ r. F1 g) ^0 R3 @. E - )$ r ~# s- A; m5 w/ G, H) \! o) J5 v# y
- 0.0000000001 ; fuzz3 U# X) Y1 h2 j" R9 @7 }0 }
- )- r" j- P5 Y( h* c* e& _ L
- )
5 X5 T8 Y, F/ k2 w; c7 O7 n - ). k9 _/ s4 u" y' d- a" j
- (princ "\nThe 2D Polyline is not parallel to the current UCS.")
# D m5 W& N! n$ }* C. X: Y - (ddpline)1 b6 e% Q8 ?( |+ ~9 |( P
- )9 v3 P9 H3 d) y( v8 w X- y
- )
' l, N, }& u/ N9 }- z - )
7 A8 I e/ h# n1 {& p8 l* @0 O - )
3 R6 _* O7 G+ e3 ?
, H, l# Z# H" H' O- ((= etype "SHAPE")
7 ~1 z1 X/ w+ G. h. h - (setq help_entry "modify_Shape_dialog")
+ I' E7 D4 |3 d! d - (ddshape)8 G6 c# b+ q: b1 }
- )1 ?( l2 c/ _1 d+ u# _& t; I
- ((= etype "SOLID")
+ ~# q( `+ d" F# b8 b - (setq help_entry "modify_Solid_dialog")
. ~' |) ], g" X" H - (ddsolid)
0 j! u5 O* O/ J2 S7 k - )/ B) s/ b! @ X0 k' t
- ((= etype "TEXT")
9 Y; L9 \. R. l6 g - (setq help_entry "modify_Text_dialog")
) [4 B$ {+ x r. d- W - (ddtext)
* Q* u+ g8 V/ v: z- p6 D - )2 U# B( K/ g `" r" y
- ((= etype "MTEXT")* L* N, ^; I) w
- (setq help_entry "modify_MText_dialog")3 |5 k5 s' U; Z; s
- (ddmtext)! s0 G' H4 S* M# L( B. l \; Z& Q
- )1 K; R4 N: s/ r1 y3 C. ]. x
- ((= etype "TRACE"), A; V" V; j2 N& l7 [9 S' l2 h5 K4 ?
- (setq help_entry "modify_Trace_dialog")
4 T1 C/ N6 v8 `0 u$ m9 A - (ddsolid)- E P, a3 E5 F
- )8 x& S& l: C) @% ]& B9 ^; _' L
- ((= etype "VIEWPORT")9 K' x3 y/ Y" k8 T
- (setq help_entry "modify_Viewport_dialog")9 g- i9 E& [9 Y" J7 z4 T/ i
- (ddvport)
& x5 a% f# j! [7 T - )
) R/ S. F/ E$ M* r( Q7 S# d" d - ((= etype "IMAGE")6 L+ P5 Y; Y o6 T" T
- (setq help_entry "modify_Image_dialog")8 A" }: g+ T! Y/ |% I6 q
- (ddimage)8 o1 B2 g& @2 N; R
- )/ T* R9 N0 e$ x# g
- ((= etype "3DFACE")# _# V$ s; S- k' l- b( j- |
- (setq help_entry "modify_3D_Face_dialog")% p# r; V/ y6 X. |
- (dd3dface)
6 ?& s0 m* N4 V7 Q8 l6 [ - ): q4 d6 _0 H# X" c4 K! v
- ((= etype "DIMENSION")( y X( g- s/ P. r, t* b
- (setq help_entry "modify_Dimension_dialog")
! {3 i. S5 f/ \& R; S - (ddimen)
8 I/ B$ r: O* C - )( Y# X6 s7 D3 P6 n; y
- ((= etype "TOLERANCE")
# F5 S, n5 h( ?2 u% c. ] - (setq help_entry "modify_Tolerance_dialog")
* K$ O: S2 `# i - (ddtolerance)
, ]2 a6 ?: g& s1 y - )
( t0 M, K( T: F! ~) t1 h9 M5 N. [! S - ;; Fall-through condition changed by MCAD for MDT 1.1 release.
0 N3 j8 A6 i* x- w5 [- l - ;; This allows DDMODIFY to work on any custom object or any new object type: y7 D+ m: ], d" A: o* |
- ;; that isn't specifically handled above by calling the more generic DDCHPROP.
8 c- Y q8 {- x2 x" @4 O P - (t
# s3 {$ x& u; Q: r - (if (and (not ddchprop) (not (load "ddchprop" nil))), v9 R _- K1 ]3 ?
- (princ (strcat "No dialog support for object type: " etype ".")))
/ H9 n: E6 `7 ]/ ~! C6 e. V" c9 ` - (progn
( M& B& ^9 }* H - (setq tempss (ssadd ename))
* C7 w6 p& h, P* [* c - (ddchprop tempss)
/ s, b' |9 q' E" N' M# M+ _/ i( t - (setq tempss nil)2 P' y5 U7 n9 ] S v! z6 l; o. l
- )' r N! ]* K. A, |& K) W' k
- )
! f. ?6 q+ H+ E% C - )# t! X# ^/ V, c
- ;; Previous fall-through condition.6 v# Y) T$ I( K" B
- ;; (t (princ (strcat "No dialog support for object type: "+ i( [, l5 \- d3 f3 q; y6 ]# l5 m# @" v
- ;; etype "."" o. ^' P2 e: C, ?
- ;; )
# W5 m: t' A F( l$ z& O - ;; )
8 o2 m) U( M T- ~, a9 j- z4 ~ - ;; )
) y$ n2 w8 e7 T i/ \$ f - ;; )
1 |+ X. o/ i6 c, y$ { - (ai_undo_pop)
9 m% }& ]# p- G; e/ Y2 O0 `; f( W1 h - )
" i) u$ o3 l. q. H" R - )! x& m& S9 A! l, X, [
- ' n. K6 L' E' q6 {/ k
- (if (eq new_pickstyle (getvar "PICKSTYLE")) ; if user didn't change pickstyle; q; P- p5 Q) W7 b4 l9 s
- (setvar "PICKSTYLE" old_pickstyle) ; transparently then set it back
- F! D4 N$ |! E5 _, V/ \1 a0 x/ S - ) ; to what we started with# B5 g+ Q; u; f# o# _
- / L4 ^+ b7 ?9 j. J
- (setq *error* old_error)1 A. I/ e' l" m! Y! X: F+ L( W
- (setvar "cmdecho" old_cmd)/ ^! h# n: [, W$ _& l$ ^4 ?; C
- (if (not reset_flag) ; if object was modified, then; v+ _1 R# m& Z& r* E
- (ai_return ename) ; return it's ename to caller
* M+ m- t" F& J' R) Z, J- S; l - )4 Q+ v* L1 E$ x- Q
- )
+ F0 ` \2 x" T
7 J! g \6 U" Z* l- (defun checkForLockedLayer (ename)
7 y( G, B8 s; v9 o) M7 [, \* d - (setq layername (cdr (assoc 8 (cdr (entget ename))))). k7 s( H# v9 M' L
- (setq layerflag (cdr (assoc 70 (tblsearch "LAYER" layername)))); X% c* i5 u6 Q# I8 r9 l
- (if (= layerflag 4)
1 X7 t4 g- B. } - T
9 A7 n; \ n, _; P - nil$ L) N4 Q4 Y0 h( t- U* G( q) f
- )
I: u3 x; u; G - )
% Q! s3 r6 {2 p
( T& S: R8 h. g/ n- (princ " DDMODIFY loaded. ")
- O% S) F* v2 O! Y) f( }" A4 P - (princ)
3 T+ r! W( V+ w& O+ ?* h4 F - ;;;???;;;---------------------------------------------------------------------------------------4 m% J. i$ B1 F: }' I- P+ g9 N) f
- $ g9 C- F, r2 V( w
- ; Next available MSG number is 8
% u# f, [& `; C$ V7 j# Y - ; MODULE_ID DDUCSP_LSP_
* ?% R: v* j4 n+ _ D6 ` - ;;;: [( _: q' S( T
- ;;; dducsp.lsp( l1 L, I# W5 L, s; Z8 R4 Z
- ;;; w; \+ J: \8 K9 j
- ;;; Copyright 1992, 1994, 1996 by Autodesk, Inc., J+ e% C' u9 o3 }: [
- ;;;
# e/ @" u" j, O/ r9 F6 t8 M5 e# T - ;;; Permission to use, copy, modify, and distribute this software! z/ G# p _9 @/ M$ F) h O
- ;;; for any purpose and without fee is hereby granted, provided2 [; n i" p5 [) [8 C# V4 o
- ;;; that the above copyright notice appears in all copies and
1 Q8 m1 H: w, ~) ~ - ;;; that both that copyright notice and the limited warranty and
1 p( K& ]* i& ]* v2 W) ~/ ]4 H - ;;; restricted rights notice below appear in all supporting% w1 E5 m- c( l$ ^
- ;;; documentation.
$ s( T8 f8 n% H7 P$ [+ u& s - ;;;( x+ x }( u% U' M6 `6 B4 ]
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
$ q. b5 g9 I/ G1 x0 m( O - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
! D0 e4 W i/ C9 n) ?4 _ - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC./ |8 J+ i6 @8 \. P* r3 T( l
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE! E; Z6 F* N# B/ ?0 i
- ;;; UNINTERRUPTED OR ERROR FREE.5 K$ G3 J: D1 Y$ U3 ]5 Q; \& ^7 g
- ;;;
( J3 c& v2 K# _! C% D - ;;; Use, duplication, or disclosure by the U.S. Government is subject to+ O; G3 a; y% ^: {% o7 X0 {
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
% i3 ^: r. H+ J! w4 H! ~' G - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) k% e( T" Y/ |4 u) i( i
- ;;; (Rights in Technical Data and Computer Software), as applicable.* T! T. T; ]) K9 F8 n: E
- ;;;5 g3 u7 }, q5 m: O5 o( ]. m
- ;;;.$ A; P% [4 h, k; P) T5 a9 g i" f- R
- ;;; C:DDUCSP - User Coordinate System presets dialogue.
- N3 g4 ~, G4 }/ X9 x - ;;; 6 y/ d/ F3 L- i" ~$ y E' i7 Y& l
- ;;; Uses DDUCSP.DCL for the dialogue definition. The
: |5 A% ~1 @7 ^; j9 N: f - ;;; slide images are in ACAD.SLB.
1 |" ]% \. x. Q# ] P6 R+ c7 L - ;;;
) @, e9 ^3 a. e/ T, Q - ;;; ===========================================================================3 H6 v( Y0 E* O S# b: b
- ;;; ===================== load-time error checking ============================) h" ^+ h/ {* @9 u7 k0 e
- ;;;
# ?% _( ^0 @- ?" J- S1 K+ B
6 @9 _3 c9 I! G/ W: d- n8 f [- (defun ai_abort (app msg)
0 r1 b( q. ^$ |3 X, [7 b - (defun *error* (s)
8 g e+ X* b; e) n2 b8 ^; Y& x - (if old_error (setq *error* old_error))
( t* I8 V) m- Y$ } - (princ)
" j% i- t. f! c2 P" T4 x/ _4 ] l( } - )* S A+ x6 @/ b) O( [/ N3 T2 {) b) r
- (if msg
6 a: v9 |( I% @7 N - (alert (strcat " Application error: "2 O( O( ~' B' B4 S$ F7 x: j
- app
/ @0 h$ @" C- R& f s- F - " \n\n "
% y1 K# P; F" m0 E0 c6 ?0 X3 t( B' A - msg
; z: g) b' e2 n! G - " \n"% j" x) u- g2 w% F) M. W" H9 X, W
- )
: q; k' r) l* z9 S - ), Q6 B& F- ?# [# L7 ~
- )) ~8 `* L: _1 N0 g# |+ H
- (exit)
# g d" o4 W& _8 V - )
9 X- z/ p8 O! P: q. w* H3 W. \4 e - 4 Z Q! M$ h Q
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
9 A5 g( q0 ?% |0 f x+ @) ] - ;;; and then try to load it.' m$ \, I" n$ F N B* ?4 g+ }
- ;;;1 S* }( v, X% o
- ;;; If it can't be found or it can't be loaded, then abort the
5 |5 T, Q* G \6 y* I" ?# Z- c9 g - ;;; loading of this file immediately, preserving the (autoload)
) \" Z8 N/ B, g/ R0 E# } - ;;; stub function.0 x) `: J1 a0 k2 k2 n' y
- 9 B4 J I- }" t" L' U9 {
- (cond- R: F6 r3 s4 T6 P" g' T# A0 g
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
8 A4 W$ U' I z+ @! w: j1 X - 7 a$ K: @2 Y2 O F" ]4 v
- ( (not (findfile "ai_utils.lsp")) ; find it h3 j3 I1 J$ h: ^' s
- (ai_abort "DDUCSP"' q1 B* ^/ o4 F! r/ M) E
- (strcat "Can't locate file AI_UTILS.LSP."& L2 n- ? P- l
- "\n Check support directory.")))
* g# J$ {- S$ o+ v6 W. X - ) \. {# _8 E" e- d& w
- ( (eq "failed" (load "ai_utils" "failed")) ; load it
3 ]- g$ @# e0 l - (ai_abort "DDUCSP" "Can't load file AI_UTILS.LSP"))& G' G( o3 y% h( J
- )
, d1 j1 F/ u6 F1 f" U: T) N
; w1 v1 V4 w# S4 ^; [3 X* ]/ j3 ?2 a- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP H9 v( o0 l. A" j3 [- \
- (ai_abort "DDUCSP" nil) ; a Nil <msg> supresses
% j E0 H/ T, G - ) ; ai_abort's alert box dialog.- l" ]) C0 m8 g2 X
- " s& R& e" e! k5 H1 n0 `
- ;;; ==================== end load-time operations ===========================
p! M6 r2 `4 U - : ~. \6 A3 {* d$ D6 F) `
- (defun ai_ucsp_start ( / program)
7 i6 j3 j" p0 [1 d. I+ a M/ A - ;; Get program name2 P) \) e( }, x
- (if (not (setq program (getvar "program")))
. b, |% t5 R* \6 F3 r* `% f/ | - (setq program "acad")7 {( Z# K1 [. ]" L) Y# w
- )8 d; |" o4 Z0 V; T. j/ v8 G9 l
- (foreach v0 '("world" "left" "cview" "top" "front" + ]0 g8 o# q" x
- "bottom" "back" "right" "prev")# Z; p! X0 C/ y" L
- (start_image (strcat "ucsp_" v0))
( ~) ~+ L" `1 z4 g4 E - (slide_image5 Z3 ]) G5 i9 W- s
- 0 0; V# j, `& u* Z5 ?# s
- (- (dimx_tile (strcat "ucsp_" v0)) 1) (- (dimy_tile (strcat "ucsp_" v0)) 1)
+ m, w/ J& X; s: | W: c! B2 e - (strcat program "(u-" v0 ")")& o: l' o- O7 F8 _3 P7 o" }
- )0 V+ Y$ Q- a0 e' p+ N4 I) ~
- (end_image)6 \! B1 k/ U& i- J2 W }( P* q
- )
6 Q8 x# j9 `/ W' e - )
+ U4 o0 ~% Q5 a2 U5 v
/ \# `) e6 q1 H' W0 T1 z J) [- (defun ai_ucsp_set (); j: N: l0 C3 O$ }8 W, v! K
- (if ai_ucsp_sv
0 ?8 _% K) k" }! n6 U4 w# O$ @ - (command "_.UCS" "_V")# v9 M6 @8 Q7 i+ ]( x
- (if ai_ucsp_prevs
% r j* p( }) t7 V - (command "_.UCS" "_P")
( z5 X4 K* n$ k6 h6 A7 b y - (if ai_ucsp_chg
2 _- E) Q2 y0 f6 F+ g - (progn
+ H+ l4 T5 N2 {+ g - (if (/= ai_ucsp_a "*")
0 Q% Z! @9 S4 T - (setvar "LASTPOINT" (trans (getvar "UCSORG") 0 1))
2 ]$ N5 t! G; f5 l1 w/ ]: J+ ` - )
0 P0 e5 \4 x, D( E# F+ ]$ a - (if (< ai_ucsp_pick 6)$ [# x" f) r. r; w2 j
- (setq ai_ucsp_set0 "@")- K* E. k9 _7 r# m! v
- (setq ai_ucsp_set0 "*0,0,0" ai_ucsp_a "*")6 M# t* L2 F: n+ l. j H
- )
0 _, G8 Z& n3 K! E - (cond ((= ai_ucsp_pick 0)) b* d# ?: ]! M$ W
- (setq ai_ucsp_set1 "0,-1,0"0 I( O3 o; Z2 s! H3 N
- ai_ucsp_set2 "0,0,1"
+ w# B' F0 C7 O2 o, J - )/ U9 \$ f) y9 o) Z, U
- )
7 {' \% J! R5 K - ((= ai_ucsp_pick 2)
! l/ r3 O% p6 A+ E - (setq ai_ucsp_set1 "1,0,0": B3 S# I. \$ `1 T( p
- ai_ucsp_set2 "0,0,1"1 {$ |; q) G, G5 n0 X9 A+ X6 l# Z
- )
# P; k3 ]+ p" p* ` - )
D# {) P" |& j1 w$ {$ X8 J - ((= ai_ucsp_pick 3)) B8 A2 F2 a6 G7 ~% U8 k {# t
- (setq ai_ucsp_set1 "1,0,0"
( e$ \ y# ~, ] - ai_ucsp_set2 "0,-1,0"( C1 J7 d8 M! \9 F8 q
- )! h7 x; v6 f" u- w8 j
- )
2 i$ L; s& p2 w | - ((= ai_ucsp_pick 4)
) z- X K' N2 \4 v - (setq ai_ucsp_set1 "-1,0,0"/ n8 L4 O2 D' v$ K5 W
- ai_ucsp_set2 "0,0,1"
, E Y: k5 g2 I - )
5 c( a* J+ A; ^ - )$ ?; Q0 m0 W8 `4 T" j$ x
- ((= ai_ucsp_pick 5)
2 D$ J: r, W' y - (setq ai_ucsp_set1 "0,1,0"5 Y& i) B2 i$ e( \: n$ K* A
- ai_ucsp_set2 "0,0,1"
: m$ E9 S* x9 j c - )& F. i. p' p7 \* @8 q5 j3 j
- )3 d4 E- X; T$ ?1 d$ o5 f
- (T# r( C0 Z1 o! Z2 Y9 [
- (setq ai_ucsp_set1 "1,0,0"4 [1 Q$ ^0 P! U U2 ~8 j
- ai_ucsp_set2 "0,1,0"
9 i5 D5 v* l2 \/ E, ^1 m% H# I' r. I! v - )4 d; c! Y6 H5 B9 b# y
- ). {+ W& x/ K$ h# z& t, o
- )
6 F- M0 T4 t" f4 Q+ [ - (command "_.UCS" "_3P" ai_ucsp_set0
' o( Q5 J" r3 t5 d3 i - (strcat ai_ucsp_a ai_ucsp_set1) * @8 o" j( @/ y2 n J
- (strcat ai_ucsp_a ai_ucsp_set2)) |: c( H) a0 l$ g: W# e
- ) % S2 s n/ }- N* {
- )6 |- X3 B! [: O& D; n/ C
- )& D9 x! Q% L. ^/ K2 ~, I K
- )6 v: n3 l5 r' Y t/ |5 `. Z! w
- )& F+ b4 n8 t5 E* X
- )
3 {6 Y3 R3 t4 z! i2 @( m6 M/ I# ^
; {% E2 g- `3 \) ]9 C( X1 p- (defun ai_ucsp_p (val currtile)0 y( R' Y5 r' m$ B9 _6 x
- (mode_tile ai_ucsp_currtile 4)
U Q9 h5 ^" H/ H( `, { - (setq ai_ucsp_pick val
, r/ I3 q- a: k3 \; M$ t/ s0 p - ai_ucsp_sv nil
6 m2 P" l. G" e6 c% Y u8 z- x - ai_ucsp_currtile currtile# j6 q0 ~9 K+ W, S0 K% Y
- )
8 a* b E/ L; ?1 R" p; _: ? - (if (/= val 1)8 `( [) Q( w8 W' ?6 V6 a
- (setq ai_ucsp_chg T)
. y% m6 d# r5 W: U2 w - )
% @; g+ h- f2 _% x4 Z# B, O - (mode_tile ai_ucsp_currtile 4)
0 f; {* t# Y* }: \) o, v0 d% X: Z - )
* s1 k! I# ^3 w% i0 | - # w) B) ]9 W: k# ~+ {
- (defun ai_ucsp_swcs ()
7 |- M/ N5 N1 A! Y+ ]! g/ ^: d - (mode_tile ai_ucsp_currtile 4)& W8 H6 p! j0 @7 O, x" f
- (set_tile "ucsp_a_wcs" "1")! |* D1 F% M& d* `! g0 T
- (setq ai_ucsp_pick 6
5 g: o9 ]# H) V - ai_ucsp_sv nil
; H L# c# ? v* T8 q - ai_ucsp_currtile "ucsp_world"6 o4 f+ }: W' ~* n" |8 w
- ); x0 T6 t; K8 ]* t2 z9 `
- (if (/= 1 (getvar "WORLDUCS"))! e, j& R8 [ v! g" t5 W9 r* @2 O
- (setq ai_ucsp_chg T)
+ X9 r) _: J" m. c" z9 q - (setq ai_ucsp_chg nil)
, n" n/ ?7 K, B8 F2 o7 Q5 f" Z - )& X J0 d3 d+ K
- (mode_tile ai_ucsp_currtile 4)& M. l" r! S$ o. \ d
- )3 j& q/ x5 n6 J+ e M' [3 w$ C) u
# N/ L+ G) h8 S. w) [; V" I- (defun ai_ucsp_cview ()' E% d3 s$ j/ H; \4 `$ H
- (mode_tile ai_ucsp_currtile 4)3 {1 c t" T0 t K
- (setq ai_ucsp_sv T / S m8 L) K2 a- A
- ai_ucsp_chg nil) w' k1 p$ A3 N
- ai_ucsp_currtile "ucsp_cview"4 x4 H6 W& p3 l; S4 K. n+ p/ E
- )
! N c; Z6 G/ ]: R - (set_tile "ucsp_a_wcs" "1"); @+ m2 ?/ V# E
- (mode_tile ai_ucsp_currtile 4)2 I+ p: u9 Y$ S* k- S
- )$ k9 k8 l. g6 p: i' z
- : A) t/ O# D2 U# I3 P% s8 ^: j
- (defun ai_ucsp_rucs (typ)
0 y E8 d0 u; q - (setq ai_ucsp_a typ)4 J! g$ N7 x, z5 k7 M' c' Y \0 J
- (mode_tile ai_ucsp_currtile 2)4 q9 c* i& j+ v7 ?# I+ Q
- )
+ w2 U+ \* U g+ q/ {/ F( Q$ X - - @5 S3 T6 Y$ W3 M7 q' m8 ^
- (defun ai_ucsp_prev ()
3 b0 d2 ^- {, i) |6 x - (mode_tile ai_ucsp_currtile 4)+ \) S- j& K% @+ }$ a. Y" K
- (setq ai_ucsp_prevs T
2 @5 [+ Y: n- r5 W - ai_ucsp_currtile "ucsp_prev"
& n8 |, w, ?; [+ ?5 }4 L. { - )% f/ l6 k. \7 y! s+ y
- (mode_tile ai_ucsp_currtile 4)% I' I1 \7 U' F, o, f; x
- )
& T' ~9 z1 p3 ?0 k c, C - / }( k o/ e) p# @4 r& b* @
- (defun ai_ucsp_main ( / ai_ucsp_pick ai_ucsp_sv globals)
7 i' w) M0 U/ D! y5 M. e0 R - (if (not (new_dialog "dducsp" dcl_id))2 I) n3 }0 v6 {8 V: G# `
- (exit). D# @# Z$ V' S6 O1 Z6 z
- )7 e; m# H1 b( Q( a# W K; ^$ [
- 3 v) o& u. o* R2 a
- (ai_ucsp_start)0 ]" k/ H4 y8 n1 b J. ~; W% t) }7 Z- H
- (setq ai_ucsp_a "@" ' @8 N6 n7 b& R r# B
- ai_ucsp_pick 2
0 ]3 q$ |- l8 x - ai_ucsp_currtile "ucsp_top". X# G" |( t- g# j) o& N+ d' F5 D+ {! R9 a
- )7 }1 g" n1 Q) i
- (if (= 1 (getvar "WORLDUCS")) R# ?/ Y& m) t( p! x4 b7 r+ B
- (progn, s5 A9 A7 ~! G _- E3 e- w
- (set_tile "ucsp_a_wcs" "1")
& _7 i: G. U% u( r9 \ - (setq ai_ucsp_currtile "ucsp_world")5 p7 C h3 e6 I# G' ]: \
- ). ]" f, H: U. w
- (set_tile "ucsp_r_ucs" "1"); g( s/ \0 ^1 J' L
- )6 E- z- A- p6 f: I8 Q6 t( B
- (mode_tile ai_ucsp_currtile 2)8 B2 @( ~. i' I: U Z
- (mode_tile ai_ucsp_currtile 4)3 s9 Z- p* |! V0 |" }6 J5 R
- (action_tile "ucsp_world" "(ai_ucsp_swcs)")! G, N9 B8 e0 G
- (action_tile "ucsp_cview" "(ai_ucsp_cview)")
E2 u0 }1 c; K1 o - (action_tile "ucsp_left" "(ai_ucsp_p 0 $key)")& J: {' l: k4 x, w! f7 Y
- (action_tile "ucsp_top" "(ai_ucsp_p 1 $key)")
& L8 O- b1 l. G( [ - (action_tile "ucsp_front" "(ai_ucsp_p 2 $key)")5 ~! K: v [! p$ Z- g5 i; ^4 [5 N
- (action_tile "ucsp_bottom" "(ai_ucsp_p 3 $key)")
* m$ ]7 u7 X$ w Z" \; D - (action_tile "ucsp_back" "(ai_ucsp_p 4 $key)")
( k4 B; {( F. M0 T2 I5 Y6 I - (action_tile "ucsp_right" "(ai_ucsp_p 5 $key)")) H# Y+ `" I. |
- (action_tile "ucsp_prev" "(ai_ucsp_prev)")! V2 C/ g, S% N8 O
- (action_tile "ucsp_r_ucs" "(ai_ucsp_rucs \"@\")")6 ?( w* T' m" [/ w; _8 P
- (action_tile "ucsp_a_wcs" "(ai_ucsp_rucs \"*\")")
% X0 k" ~( ~1 \! |% n3 D - (action_tile "accept" "(done_dialog 1)")
3 f6 Z; X( s6 y - (action_tile "cancel" "(done_dialog 0)"): m$ d7 t; I8 a
- (action_tile "help" "(help \"\" \"DDUCSP\")")
! a. f' t& I. c - (if (= (start_dialog) 1)
; |9 h7 E) ~) ?2 d5 J' I3 w - (ai_ucsp_set)
! J9 q; b+ l: }, F6 C - )
0 V6 w/ L: K" c" l - )
9 G5 Q6 L. {: W" O: y5 d - ( S( ^1 f; Z9 e8 W, G
- (defun c:UUS ( / app dcl_id old_cmd old_osmode ai_ucsp_prevs + |3 K4 Q# e, P
- ai_ucsp_sw undo_init)# A0 h; g- }* M
! v" |4 q B% T; N2 Y- ;; Set up error function.0 k# y: d4 C# c/ x4 g! z. J5 Z& J
- (setq old_cmd (getvar "CMDECHO") ; save current setting of cmdecho
( Q' e6 T* X2 m/ }3 h% e! n - old_error *error* ; save current error function
. I9 R& t! Y8 B5 q - *error* ai_error ; new error function. n( S0 a; e5 c* z" w! ^
- old_osmode (getvar "OSMODE") ; disable OSNAP for duration
# ~: o$ D( \3 }; `- K; ~: H - ): Z7 Z& @' K) ?/ p+ u1 m
- % Q. V- V5 @4 {
- (setvar "CMDECHO" 0)
% z' U9 F b8 t2 q( z
3 J( v5 m1 Y+ j/ y- (cond
9 ]* T5 N* _' O - ( (not (ai_notrans))) ; transparent not OK
, O3 C+ J4 J- W& t - ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?" t) |; v% f M- k# T, \3 Z
- ( (not (setq dcl_id (ai_dcl "dducsp")))) ; is .DCL file loaded?" s3 M" B9 w! }/ m1 Z
- (T (ai_undo_push)! z. f( ?# g( T; j; ~; t- c
- (setvar "OSMODE" 0)& e7 p* }; M" k
- (ai_ucsp_main)
6 u, Y y2 B% h3 t - (setvar "OSMODE" old_osmode)( V+ e! E& z6 K* W2 l
- (ai_undo_pop)
1 N9 F" e$ B# i6 p) ^' p+ A+ ]: _ - )! j! n$ ?: W: ~1 E1 v9 }0 Z7 B0 h
- )
4 A9 w6 X9 K4 _- e8 M, N4 P0 ], M a7 K - 2 \+ p+ K! k4 k8 \
- (setq *error* old_error)
% Y: ^! v7 J! w- F- M - (setvar "cmdecho" old_cmd)
8 m' o3 B" o" n' C - + V. f6 ^7 @" t7 M) t4 [
- (princ)
% l* D4 z* y) c% n5 c& t - )
1 t7 T( {, |: Q, O. L- }4 }6 I
/ T0 c5 f+ v9 n% }+ c8 ]0 h- (princ " DDUCSP loaded. ")% V/ { d6 |' c0 o
- (princ)8 l! |- i" k$ b) w
- ( Z) F: G# q. H- g* Q/ ]- N2 v; \
- ;;;???;;;---------------------------------------------------------------------------------------* O3 i3 ?' T" g5 u
4 o' @) i% ` S- ;;;----------------------------------------------------------------------------
* T- w5 G& C& }% Z5 f - ;;;) r3 ?. x) `, m& ^" P) m" F
- ;;; EXCHPROP.LSP ) @1 z4 F, j3 E" O8 N
- ;;; Polyline and text modification capabilities added by 5 i2 f& B3 |2 i; }. L q1 b
- ;;; Randy Kintzley
1 t* ?) j$ M0 t6 p - ;;;
; M. w7 {( {; y; e3 F/ L - ;;; Copyright (C) 1997 by Autodesk, Inc.
! c1 _' R: _) h - ;;;# J4 V4 H4 t+ R& x/ `* v9 L
- ;;; Permission to use, copy, modify, and distribute this software1 [. \& T+ S2 P/ }. t
- ;;; for any purpose and without fee is hereby granted, provided- [* d2 K3 }6 _0 g
- ;;; that the above copyright notice appears in all copies and3 b4 \5 e" E/ y$ Q) w
- ;;; that both that copyright notice and the limited warranty and
- j; t4 j1 L" t! }, l - ;;; restricted rights notice below appear in all supporting1 K: S2 O1 t6 g
- ;;; documentation.
& ]. y# u) |# }% X - ;;;) H, Q/ K' q" t% I! P6 \7 `. ?
- ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
5 a ^' U1 ?4 Z, D4 n, D1 X - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
% S$ A2 `/ p6 S7 K0 B - ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.# _7 i! X6 w; P, n) m# ]/ u5 f. H
- ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE: I$ a* a( f) v% ~
- ;;; UNINTERRUPTED OR ERROR FREE.
% v' B/ Z- U% w& L* U7 n+ c - ;;;
3 a X2 g- f% A% \ \2 t ?8 d - ;;; Use, duplication, or disclosure by the U.S. Government is subject to, C2 m6 o. D7 n1 ~! e
- ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer- U4 v+ o9 u1 K/ O
- ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)- g3 I6 A; |( g2 n
- ;;; (Rights in Technical Data and Computer Software), as applicable.. @3 [7 e( P* j; z
- ;;;) b6 G6 N" t- o4 ~; E( F8 X
- ;;;.- L" C+ e' F. m' e
- ;;; 28 February 1997
2 J& _ b. n w/ n3 `2 r - ;;;* y+ i6 Y" P- ]% p% [1 |8 `- o
- ;;;4 q: n" }+ A& U5 I
- ;;;----------------------------------------------------------------------------7 O1 M( M0 P1 O3 p
- ;;; DESCRIPTION
4 Q& i) E/ K4 L- W0 f9 l2 X( ] - ;;;----------------------------------------------------------------------------
3 E* y2 u4 e! d0 \5 | - ;;; C:EXCHPROP is an extended or enhanced version of ddchprop. This 8 c/ @% M, _( c; v
- ;;; command gives the user the abilitie to change several characteristics ! \# m ~$ ]' p, P
- ;;; of selected polyline and text objects. {+ O7 M' g: _8 R
- ;;; The style and height of selectected text objects can be modified
5 b. }9 x5 s4 I- u/ ]. l6 b - ;;; (including text, mtext and attribute definitions) as well as, width and 5 k* P/ v9 t' v6 ~ y8 P* X8 _2 C+ ]
- ;;; elevation characteristics of selected polylines (includes lightweight and * \. g& M+ x' D8 h- g; a
- ;;; traditional polylines.)
& S; e. M# c5 N4 e" V3 M - ;;;----------------------------------------------------------------------------) {) R* C3 V* }
- ;;;----------------------------------------------------------------------------* \7 @4 _7 L0 V4 |0 b! h, L
- ;;; Prefixes in command and keyword strings:
. Q$ D& u% i4 A$ G: W: {; b* t - ;;; "." specifies the built-in AutoCAD command in case it has been5 H9 `2 w+ }# o. p9 w) I) o
- ;;; redefined.
" Z* F) u* X) w& o8 I - ;;; "_" denotes an AutoCAD command or keyword in the native language& f* H5 H c( \, _$ q8 X
- ;;; version, English.
! ^( s: k' k2 V3 C- D% r - ;;;----------------------------------------------------------------------------2 y- V, r0 d$ {$ X
- ;;;
, O1 e& Q% ?7 R# P0 _0 I& ?6 V - ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;' [4 v* }) e% J+ Z) Q- M+ v: T
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
$ N6 J* z+ @: ]- x - ;Functions created as result of loading file: exchprop.lsp
, L& O9 }6 ?% ?4 D1 _) [ - ; DDCHPROP2
3 P2 n( d, T- c/ D/ m4 N5 Q - ; DDCHPROP2_INIT
' N8 C7 s6 g% W - ; DDCHPROP2_SELECT) d% c$ l/ N S. B
- ;7 i! A5 m0 U$ o7 U' Q W; J
- ;Variables created as result of loading file: exchprop.lsp" c6 Y& [& H! w9 Z) a, d. F
- ; OLD_ALLOC
e$ e* w# ^+ b& S. T - ;
/ l% q. E! F( Y$ n) L - ;Functions created as a result of executing the commands in: exchprop.lsp
6 ]2 a, y4 Z# ~. F+ R* W, E- g - ;
) k- U1 _: A! [ - ;Variables created as a result of executing the commands in: exchprop.lsp
# u" o$ v3 Y6 z; f; j/ A" g J; _ - ; AI_SELTYPE
+ @. A. [ V$ i/ E, J" w - ; BONUS_ALIVE4 d) v, R+ S" n& Q5 G" o0 |4 o- g
- ; BONUS_OLD_ERROR! |% |8 M' U# |0 n) J# E1 ?
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GLOBAL INFO.;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;$ z$ ?8 \9 R* e+ U1 x+ P, M
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4 t' b6 h/ Z- f* u0 Z5 ?
7 L. K( A6 C D# o. c7 [" a; ~$ l- ;;;
9 s {$ x; b X: j" f; I - ;;; Avoid (gc)s on load to improve load time.9 Y( L, j% v5 X! W7 [
- ;;;
/ x& r7 ? q. ~ ~; o - (defun do_alloc (/ old_allod new_alloc)! Z" O; G6 `! g8 R
- (setq old_alloc (alloc 2000) new_alloc (alloc 2000))- p* X) N5 Z3 P4 s" I1 e2 k
- (expand (1+ (/ 4750 new_alloc)))0 j6 I/ R; ~/ E- q# ~- r1 I2 ]
- (alloc old_alloc)
8 f; B5 c. H' X2 @; S - );defun9 {( n0 w0 s/ [* I' W# n
- , l0 m$ R; s) d, {9 J4 i
- ;runs at load time - rk
9 t9 f6 b+ S1 i/ m" _# p - (do_alloc): q2 E+ |" w* Y7 q- c. t
- (setq do_alloc nil)
4 U$ X; H- \% S1 S" l, k2 U - ;;;$ B9 s: C' v+ q7 ~
- ;;; ===========================================================================2 Z5 R+ S! v; L
- ;;; ===================== load-time error checking ============================/ e2 }. Q' K0 l( {9 w
- ;;;3 H+ V8 J! {- O$ w
. s0 \9 Z( Y: K- h2 i- (defun ai_abort (app msg) ! E1 {( \' S5 Q( r
- (defun *error* (s)
) \% C J# Q4 }& I' ?4 V+ s - (if old_error (setq *error* old_error))
& O- S! ^9 i" `' F) T* n$ q) G. Y+ ` - (princ); V$ G# L+ L, E, v
- );defun \% N1 Z1 c, H8 d
- (if msg
" ?' N/ ~5 | c8 o3 h! f1 g0 G9 { - (alert (strcat " Application error: "0 F/ j0 F6 i' ^% A$ ], Z" D5 S; I" {
- app
( ?, T8 n# \9 \$ t% P3 }7 \ - " \n\n "# A+ W5 w$ ]+ n' ? X
- msg
4 Z5 w i: @# G" G - " \n"
7 Q5 K* m1 W7 a/ V$ U - )' E; z; `7 U# r" X; e
- );alert. C1 j5 i; o: _. Y$ {
- );if% j" z* _1 p1 W8 l
- ;(*error* msg)& d0 |8 q7 `/ F! `' J
- (exit)' p/ K0 \. x5 P5 q" |/ ]
- );defun ai_abort
S6 W+ e) W% S( v! F" ~* x - . u9 f% ?- e! F+ K6 `
- ;runs at load time - rk2 t& y2 X! P; [ P( `/ M0 W
- ;(if (and *error* ;added the if wrapper around this - rk.
% H9 x0 x6 \+ X- A% A& I, y7 q - ; (not old_error)
" i- K0 P3 ^# t( h- } - ; );and / ]% K6 f% Q g0 ]& ?$ m) Q
- ; (setq old_error *error*);setq+ M1 l, l# Q, h8 ?5 O+ K
- ;);if! ? c7 \; o' r* q* z) E
( M% C5 S+ Y" h/ d3 S; a- ) P" m2 B7 W) l7 e# [2 P& M0 }) _
- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
0 d0 y5 O/ ^6 ^# ~ - ;;; and then try to load it.
1 v7 o7 _* @5 f0 S - ;;;
* x2 [& v! Y# I' G7 n7 I! M - ;;; If it can't be found or it can't be loaded, then abort the; W n2 @; }. q8 H
- ;;; loading of this file immediately, preserving the (autoload)
6 s) [) {* w* A; `' x# S9 F6 J - ;;; stub function.
! E2 t" i1 l6 Y) e# Z9 }) V) l - ! k- W" B" X; t$ N
- ;runs at load time - rk.: D; Y! J: g3 h+ ?
- (cond- d5 j S$ d4 e$ C% F
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
& o" }+ z0 Y U$ I - ( (not (findfile "ai_utils.lsp")) ; find it5 P8 t* c2 I( S
- (ai_abort "EXCHPROP"9 x, C* @8 J4 Q, L
- (strcat "Can't locate file AI_UTILS.LSP."1 L* M1 [2 `/ H5 G3 ~' K
- "\n Check support directory.")
( p# ~! f! `5 V1 | - );ai_abort6 @3 W/ e1 ?( {( h& I" ~
- )
. `: h0 s( Q& d1 w& P - ( (eq "failed" (load "ai_utils" "failed")) ; load it7 d" Y$ m w s/ x3 x
- (ai_abort "EXCHPROP" "Can't load file AI_UTILS.LSP")% b& p0 h3 S @; [* J Y0 p h
- )4 y& Q! l7 t5 C# o6 Q3 ^ z
- );cond close
( N& H' V0 C# W; v9 M' ?; {
( I) N+ ~6 X1 R! _( D- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP
E$ u& x% O* F8 F- f - (ai_abort "EXCHPROP" nil) ; a Nil <msg> supresses
& ?3 Z/ b7 U9 P9 @4 g3 n - );if ; ai_abort's alert box dialog.
# o" H* J+ n7 i' ^/ n
" K; ~0 L- j3 |- ;;; ==================== end load-time operations ===========================: z. ]; a0 B" s. B" K: h- H7 F
- ' c. t Q: H, Z* a; c& Y/ K j5 L
- ;;; Initialize program subroutines and variables.
: h% v5 j$ O# F$ z: v - ( D* M1 f6 W# E; t( b1 W
- (defun ddchprop2_init()
4 V" B' Q$ a/ s" B l3 p Y - 8 D! }4 Y/ x3 q9 |$ w: ]
7 U9 U) C" v6 k' e0 K
/ B. d7 ^" ]3 O9 M$ e- ;;! q1 }, z* m% F2 s$ E! q) E
- ;; Define buttons and set values in CHPROP dialogue box
% A2 m1 R% U% G7 K: }% T! u. m3 K9 W9 v - ;;
, f; @& j" D, X" m$ y - (defun call_chp2 (/ cmdact p1 p2)1 Z9 A2 L! q4 u: i- \6 ~! M
- # j4 F: Y5 `7 Z- Q; W, r! Z9 C8 }
- (if (not (new_dialog "ch_prop" dcl_id))
4 ~/ P: P( I6 W - (exit)
, a, Y3 p g- V% Q) [& h7 \, w6 F - )
& O8 d/ U' T$ b+ S
+ O# {$ E& G# Z- (set_tile "error" "")# c' a" H3 _7 }* g; J/ u1 \
- ;; Set initial dialogue tile values
/ R# W0 ~. V; M' G5 N" @8 {' [ - (set_col_tile)
0 f# v4 R, U8 [& h5 A, {3 w - (set_tile "t_layer" elayer)2 U# t& o# B$ b
- ; c; T+ l8 f+ Q( }
- (cond" V/ ~' p4 Y$ S% v- q
- ((= lt-idx nil)
7 b, f2 e! ]- H - (set_tile "t_ltype" "Varies")' B& S+ ^; S5 I E1 y) F: T; V! x
- )
- h4 s% O/ a" ?, R+ R1 m - ((= lt-idx 0) ; set tile "By layer & layer linetype"' m& _; [8 ?9 [1 E6 T9 J+ v
- (set_tile "t_ltype" (bylayer_lt))1 t- i- t" [ N2 t5 k6 C
- )% M* U5 }: I% l
- (T
) K/ t' l2 u" P0 L - (set_tile "t_ltype" (nth lt-idx ltnmlst))& _3 @1 W. q6 [/ B7 I
- ) G+ }- \& S. _# O
- ). c' j# T! {3 H" X& Q
- * S4 c% D1 ^1 s& Q
- (if (or (= ethickness nil)
: j7 A! ~3 a' [3 b - (= ethickness "")
- T7 Z6 E P* T8 T - (= ethickness "Varies")
" B6 `8 I* X1 I$ T - );or
5 a8 U4 C2 X# w9 j$ S$ J - (set_tile "eb_thickness" "")
. J1 B3 }" q1 P - (set_tile "eb_thickness" (ai_rtos ethickness))
. }" P2 h/ l) R" J- Y* o - );if
: ]. f1 g8 U9 C I* v! x - (if (or (= eltscale nil)/ U9 _, C2 a& J+ u: q
- (= eltscale "")
) D% Q$ [ o; q' e% c - (= eltscale "Varies")& I, R- M6 D1 n
- S( K+ }5 g+ h% D& |# H. o! B/ Q
- )! m; L0 e$ i' z& m" w+ r
- (set_tile "eb_ltscale" "")
( C. M4 F D, ~9 j: S - (set_tile "eb_ltscale" (ai_rtos eltscale))
% [/ a; e' U+ F - )0 k `7 I! _" ]% Q) f
- (if5 I: d: o+ N: ~+ S4 x, W
- (numberp ewidth)
: t3 R) M1 a+ r" b+ E - (set_tile "poly_wid" (ai_rtos ewidth))6 i/ `0 T+ L/ m
- (set_tile "poly_wid" ewidth)
$ X7 ]$ }8 u/ H- `6 S& U - )/ A) z- X2 d* R1 A0 _) e |8 r
- (if7 S( V1 o# z3 N5 v! C1 o
- (numberp eelevation)
5 A F1 H* W% {. W" Z - (set_tile "poly_elev" (ai_rtos eelevation))7 O, r% p5 X2 Q" j( y- G% n
- (set_tile "poly_elev" eelevation)
+ x+ \% v4 [1 k: z0 a$ w- q - )
' w8 A/ _% b) Y. W - (if0 p. a- B1 a; n
- (numberp eheight) f# |0 f/ |/ b; I
- (set_tile "text_hgt" (ai_rtos eheight))! ~3 ~+ M* W/ z m3 n6 l
- (set_tile "text_hgt" eheight)
3 A/ \3 X( f2 \0 W - )
; U1 ]4 p. f2 I2 T: v - (if (not estyle)
. L' A7 j; _ h, ?5 F - (setq estyle "")
! {' r, A8 {2 B7 ~9 g - );if 1 R& }$ l( [/ C$ M; m0 K
- (setq hair_style_list (tnlist '("style" 16)));setq' A+ Q5 W7 p: r, W& @
- (if (not (member estyle hair_style_list))
- c) M, s! ?* o - (setq hair_style_list (append hair_style_list (list estyle)));setq
+ u6 ~3 u+ W) y; K! s; ` - );if
# c# d) d2 u8 C, k; C8 }; a
% w; f. i9 Q7 [- I3 d/ @) x- (setq hair_style_list (acad_strlsort hair_style_list));setq
/ X0 z" l4 r# s# r8 p% c8 z/ r; } - (mpoplst "text_style" hair_style_list)
+ L" T9 C- A& e; @ k - (set_tile "text_style"
2 x8 P) u6 f% Y% D& n: R - (itoa (position estyle hair_style_list))! q) x( V. t3 Y$ G: \% I2 o
- );set_tile ( N$ v' d+ s* X
- / ^! R& L9 z' T. \' m& {
- ;; Disable tiles if need be... ;@RK" t6 R Y7 a; I1 z+ N1 w
- (setq a 0)' J0 b3 d% @( p# T _
- (while ( < a (sslength ss))& S% S. @ p& i* A% v) q8 m
- (setq which_tiles1 u+ b. S' g2 _+ w
- (ai_common_state (cdr (assoc '0 (entget (ssname ss a))))))# P- j" _/ W/ C+ ^2 S
-
% t- L2 M' m1 O5 t& a. z, p - ;; If all fields are enabled, don't bother checking anymore.
$ F0 z5 q. r9 U8 r+ ~) S* Y) e - (if (/= which_tiles (logior 1 2 4 8 16))
8 W* R8 k$ \, W6 J - (setq a (1+ a))
9 L( S: B# E& g# u# V2 ~ - (setq a (sslength ss))
( ]3 L/ @6 H2 j) J - )6 A9 }; B" F3 v, |7 S' k: h0 J
- )
# Z( H, H/ J4 ?& F - ;; Layer Button and Text Field
9 b, Y3 k9 `* a# b/ s& I% c4 F - , {: Z% G3 J! e. K0 l
- (if (/= 1 (logand 1 which_tiles))
" O$ V+ l9 r3 F - (progn
$ p3 }5 d2 k- U' ]3 S - (mode_tile "t_layer" 1)
h8 k9 h' R3 E$ P/ k - (mode_tile "b_name" 1)
- p A. H+ N |$ @; ^/ c# T; m! Y - )
$ {# d+ P( `4 K5 m, V - )( `5 \# m) n- r" G
- - U" J5 Q' u3 |4 a
- ;; Color Button and Text Field
( g. N) r! f8 t0 [3 X - (if (/= 2 (logand 2 which_tiles))2 m( P; G8 x R, M
- (progn
: }0 E8 b f5 `0 g - (mode_tile "t_color" 1)
, H" ?7 G" r3 k - (mode_tile "b_color" 1)
' f4 a [/ Z* z: |5 D - (mode_tile "show_image" 1)
% O% m" c7 _. j [' [% Y - )* j3 I8 J4 P3 r! S9 A# O
- )
1 I8 ~: H$ o2 F# d+ V - ;; Linetype Button and Text Field
- v. s' ]5 P: T% [ - (if (/= 4 (logand 4 which_tiles))8 w, O9 ?8 {- H6 P) A; H) y
- (progn: p& Y+ d& @5 R4 E) Q' @% ^8 D
- (mode_tile "t_ltype" 1)' \. p7 E6 N Q8 J
- (mode_tile "b_line" 1)
" m4 f9 D, @7 G9 l - )
" u; D# }% Z$ D B0 j4 f0 {% A e& g - )
f3 k$ x% }4 h0 ^& f. V) @ p/ |! D - ;; Linetype Scale Edit Field
0 Q! g$ b8 `4 d$ A8 n# b - (if (/= 8 (logand 8 which_tiles))
* D8 p; J# z2 e6 d" h - (progn% K& j& ?3 t- F# \: F9 O7 G
- (mode_tile "eb_ltscale" 1)
: z5 x" p" u9 G: v6 c - )/ {% a5 N* ?/ H( I, k, I2 E d
- )
. E! l) V1 n8 K4 N$ C x v - ;; Thickness Edit Field.& Z0 h4 ~: c# S- y0 v
- (if (/= 16 (logand 16 which_tiles))* ]/ F T) w+ }3 s1 f# d) j- z
- (progn
% g, W$ X/ i4 e9 D b1 m - (mode_tile "eb_thickness" 1)1 d H. b, k# n
- )/ E" M+ r V2 |6 R# l2 ^, ^
- )
3 t- \# n2 K* e4 w( ? - & ?9 ?/ d6 Y, z2 J m4 k, x: H
- ;; Polyline box and tiles @rk 10:05 AM 1/30/97( O; U( n4 z7 v+ f
- (if (not (= 2 (logand 2 eflag)))! t$ N+ P. x) d* ?8 X7 I
- (progn
1 X. e2 n, |( ^/ e1 r" i - (mode_tile "text_hgt" 1)5 N3 C4 r6 u! e% M; n- C4 W( O k
- (mode_tile "text_style" 1)
" G1 _$ \+ k H - );progn6 t; {$ K, n: {2 }4 K( z! Y, L
- );if1 q* O7 s/ D! E! W
- (if (not (= 1 (logand 1 eflag)))3 C6 r0 b L6 ~, g& N
- (progn , l3 J$ l3 l I
- (mode_tile "poly_wid" 1)
7 j# a8 D9 E7 i - (mode_tile "poly_elev" 1)
7 O. G+ T# M! a5 x; p3 @7 ? - );progn then disable polyline fields
" s. g- r( {" c4 P% z) W7 W - );if6 e' Q! b) K/ H5 ?% J
) B" `! c# _0 \# X$ Z- ;; Define action for tiles
4 Y4 f9 H$ `# A9 A6 y! t4 }- a - (action_tile "b_color" "(setq ecolor (getcolor))")
3 ^- ^2 q1 L3 g) V. j( r, X# v - (action_tile "show_image" "(setq ecolor (getcolor))")
; w* z8 g; Q; N% b - (action_tile "b_name" "(setq elayer (getlayer))")
0 p9 V/ Y+ E9 t* z+ S# q3 ` - (action_tile "b_line" "(setq eltype (getltype))")2 `0 [; V& z; d/ {7 [2 b8 K3 L. Z
- (action_tile "eb_ltscale" "(getscale $value)")* c, d8 W6 l2 z, J
- (action_tile "eb_thickness" "(getthickness $value)")
* h; P |9 P' S! G* F/ g/ X - (action_tile "poly_wid" "(getwidth $value)")7 K6 O7 e/ n4 G5 j$ i
- (action_tile "poly_elev" "(getelevation $value)")
6 |& ?) G& P- l/ Y - (action_tile "text_hgt" "(getheight $value)")
" J8 U5 [% R/ }: b5 Z8 J/ q! R5 _* j2 | - (action_tile "text_style" "(getstyle $value hair_style_list)")
! `1 A6 q% m4 x- g$ V2 u7 J V* I - (action_tile "help" "(help \"AC_BONUS.HLP\" \"EXCHPROP\")")% T% ?: `! \% U8 W. s5 q" @ P; [
- (action_tile "accept" "(test-main-ok)")
8 ]! n, ]; R2 h8 E4 Y - . K* _$ v9 ^- E* f2 ]
- (if (= (start_dialog) 1)% @+ N6 W# ?2 a7 {9 w
- (progn
5 |( V: W! H+ [6 `4 ^% b - ; Update special properties for polyline and text selection-sets.
& {- R/ ^! ^( u& ~ -
. G* V: ]; J8 i! X( M8 Z - (if (and (= 1 (logand 1 eflag)) ; polylines rk chprop! x7 t5 W- J- d% A+ M- F# x9 s' m9 G
- (or ewidth
$ d/ C) G1 z) G! f3 ]. V - eelevation5 A2 B! G$ ^/ l0 o6 W
- );or' y# m; D3 s9 ?# N+ b7 ~/ I+ F
- );and
" n7 h m! h+ A, L - (progn5 {, a. N, [9 \# ~
- (setq ss-index 0
1 C9 e* [+ _/ C' R: ] - ss-length (sslength poly_ss) N: l) V' h" T1 C1 Z/ N2 E3 h& j2 Z
- );setq
: y7 O. S+ G8 L; K9 b4 g - (while (< ss-index ss-length): ^9 i% L' |+ z# @; ]' ?4 e
- (setq ename (ssname poly_ss ss-index)% ~" _, ]1 B+ U0 \9 B
- elist (entget ename)& a' ], ~( ~2 B9 T$ H0 s2 x) L
- );setq! j4 _* {0 P) S8 j- ?4 v) L8 e0 ?% G
- (ucs_2_ent (cdr (assoc 210 elist)));this function lives in ac_bonus.lsp
$ b# Q/ l; m& g1 }4 m/ z t - (if ewidth 7 A* \: k) Y& N% r* R
- (command "_.pedit" ename "_W" ewidth "_x")
# }5 {, @' E1 q5 j - );if
# a+ b. g1 {/ H$ {0 b7 i3 S+ R - (if eelevation 2 [% v3 y9 j9 D+ j/ v C3 t6 v7 h
- (progn
( |4 J' s; c. i$ R/ t - (setq p2 (list 0.0 0.0 eelevation));setq
1 C# {) l H6 m' R - (if (equal (cdr (assoc 0 elist)) "POLYLINE")
/ ]4 Y1 L7 g% f, n: |4 |& s - (setq p1 (list 0.0 0.0
: O! c: j y2 s9 N% a3 H - (caddr (cdr (assoc 10 elist)))1 _* R, C5 n4 ~6 G6 {5 M3 F
- );list/ x! H: V6 l+ y/ Z
- );setq. |& s: l2 I2 _7 R7 Q; `; x
- (progn' | X. O8 ]: v4 z
- (if (assoc 38 elist)1 @: t u6 H' Y# S
- (setq p1 (list 0.0 0.0
+ m3 g4 c+ U2 H - (cdr (assoc 38 elist))
( j3 v% R, _7 s, T' O/ O; o - );list, m4 |! `/ F. U7 F
- );setq
& d5 i6 ?# a% z h2 Z. M' K - (setq p1 '(0.0 0.0 0.0))
7 e8 [5 `' U+ {- U" M# \1 Y9 F - );if
) |- D; |" O5 d8 g' | - );progn
: r; S9 J- u& J8 a8 o! { - );if
' i) U5 d5 e" M5 Q# c- f7 p - (command "_.move" ename "" p1 p2)$ z) l6 K/ `' l
- );progn then change the elevation of the polyline. ~7 F9 `1 K7 S- W3 M: ~
- );if; d6 K7 ?! m& J- E+ |# Z0 d! l* [5 ^
- (command "_.ucs" "_p")
! l, U1 J% x# N) I4 @- d - (setq ss-index (1+ ss-index)) m+ D" M+ v6 Y l- h7 k
- );while
$ r/ }! d) W& h! y7 A - );progn then polylines are in the selset# B, o: ~2 ^% n4 U$ q
- );if0 V+ `: i' _6 x% T8 l' S- H& L: U$ \
- (if (and (= 2 (logand 2 eflag)) ; text0 e* x2 d1 D1 Z) o w H' X
- (or eheight
8 l: O/ y8 i1 T- ]4 k- D - estyle
2 x, ]; K/ y- ?% c0 v- K3 k4 p; U - );or$ K/ {! n# G, T
- );and) h+ h5 _/ T. g8 l4 u
- (progn7 K& P( I+ {; h/ x1 F6 b
- (setq ss-index 0 ss-length (sslength txt_ss))
6 _, O- N9 d3 p# Q A- x0 N - (while
* f8 u# x. K6 F& x2 @: H - (< ss-index ss-length)& X7 w! v5 r% w& Y
- (setq elist (entget (setq ename (ssname txt_ss ss-index))))8 _; v0 d9 O! D: a2 [ u
- (if (numberp eheight)
2 E5 R4 s; i) B - (setq elist (subst (cons 40 eheight)+ R9 F/ R( _9 ?: f% o
- (assoc 40 elist)
1 U9 l$ f; c4 k+ L# F5 g3 V: P - elist
9 J `: b5 m( P8 n6 \4 y2 G - );subst( I8 Y1 H; D8 Q0 E
- );setq
D" l# x/ b, H3 g2 z& p0 R, V* d - );if
6 T" f- h( b6 a0 C# e) I) P. | - (if (and estyle ;(not (equal estyle "")); L5 q0 j; y% S$ u1 _" t2 Z9 Q/ K m
- (not (equal estyle (cdr (assoc 7 elist))))% P% e3 K/ M' U" e, C
- );and
% `; J/ ^) Z3 S - (progn
& {4 ?- Z2 Z# H/ \5 E4 p - ;rk. This needs to be implemented as per mtext font issue in ; ddchprop_notes.txt
6 h! s1 |$ Z) H: ~( j - ;(if (equal "MTEXT" (cdr (assoc 0 elist)))
1 p' @- P9 F; o4 u5 s - ; (setq elist (fix_mtext_fonts estyle
6 [. Z! Q9 ]0 E4 K: v+ S" c& H# E* H - ; elist
" _, ^ u0 @$ |( K" I9 C; `0 ~8 H - ; )
7 z9 t: Y& F1 l/ u9 [0 [ - ; );setq then
' p8 }! }1 \0 u. P9 m - (setq elist (subst (cons 7 estyle)) S8 H/ }- L( P" y; D9 J
- (assoc 7 elist)" H$ s9 B9 D) t/ r5 S
- elist
5 a, B/ {" I$ K7 p$ c+ @! ? - );subst* D. n. C+ }- A4 w5 x: n% n }
- );setq else
2 | }* \- S% u9 m - ;);if
- O6 O5 J' @8 D5 _* e+ c, v2 v - );progn7 K* y8 P2 ]" ~/ }& Y/ I
- );if
: c8 R% L, E/ q% y+ s2 L# G } - (entmod elist)
' @2 b7 y5 c, E6 I( o3 w6 _ - (setq ss-index (1+ ss-index))* e8 ?% {9 A4 E( G: V$ C0 u
- );while& I2 G0 C/ ]1 ^& I3 v
- );progn then+ u0 W) ?: q9 H# p) E
- );if- h, U6 [9 e& |* l# H( L0 c& ?5 U
- ; o2 {" `" n7 j
- (setq cmdact (getvar "cmdactive")): x- Q" c( D# ]6 [. g' X1 Y* h
- (command "_.chprop" ss "")
. N, V8 g1 z% N9 i - (if (/= cmdact (getvar "cmdactive")) ; Is CHPROP actually running?( E2 |# G' A j
- (progn% f3 l* _$ f- K* J1 i5 N7 J# j) \
- (if ecolor
Y9 ~8 l; I" `2 l& _$ O" L - (progn
8 t: c& e! [2 _. G8 h0 `: X - (if (= 0 ecolor) (setq ecolor ;|MSG0|;"BYBLOCK"))
( ~& H0 g3 x5 y - (if (= 256 ecolor) (setq ecolor ;|MSG0|;"BYLAYER"))
U0 U5 z* l* V W, l4 ]% X - (command "_c" ecolor)$ k- Q& S) B0 X1 e6 V
- );progn then
: z, |+ Y+ }1 g2 x - )
* ^1 t1 K% n* y, L" v; v - (if (and lt-idx. l0 M3 n n6 n
- (/= eltype ;|MSG0|;"Varies")
4 J& z# O/ t. }) r7 m3 w( r - )
& ~& p9 N' F* V1 G& F3 Z8 P8 h - (command "_lt" eltype)
3 d0 \. m1 S0 g7 z% W3 Y, ? u8 P, G$ E - )" L- o& H/ C' r0 e
- (if (and lay-idx + N# B: N/ [* i% M# H/ B5 ^
- (/= elayer ;|MSG0|;"Varies")+ l( ^4 Z6 e: n. `% R& \- F
- )/ k5 A8 `/ I$ _
- (command "_la" elayer)
G& r4 K* `; |. } - )
0 W# m+ r; p+ w# i: T& @# [ - (if (and ethickness , c) ^0 ]5 c9 q( n( e7 U
- (/= ethickness ""). o. a3 o* Z4 L7 M; v
- (/= ethickness "Varies") ( X. m' {& [( _! j+ a0 J3 t; x
- )5 N- ^8 u* O& J- I+ s) N8 S) k
- (command "_t" ethickness)7 r" L- x9 J+ L8 C' E& A) O3 v
- )6 F( }8 o9 r/ x7 i1 j$ t
- (if (and eltscale (/= eltscale ""))2 B/ W6 t4 A9 [ h# o1 q
- (command "_lts" eltscale)
* F. \0 Y! q* |: n/ C - );if
5 B3 _' F& p8 V# l: R - (command "")' t6 B8 U+ T% ]# c; ^5 S9 ?
- )
, Q! k6 d- R6 h7 _! g; C$ ] - (princ "\nProperties unchanged") ; CHPROP didn't like our SS set
9 P: U9 N+ g( H4 w - )+ e, j" Z! b R6 b& S8 U" z
- * I$ J; J1 h% K, u+ P- P
- );progn then OK was picked in the dialog.1 a, H5 @6 E1 ]5 E: b* D4 w
- ! t. A: D# z6 Z% v2 y
- ;; Fred GERBER - 25-AUG-94
" }. h* j* s/ E- q - ;; Don't print the "Properties unchanged" message when the user cancels
/ }3 \9 Y" h& J, k! l! Q1 O) @ - ;; the dialog because he knows that already (otherwise he would have
8 G o7 @' v) V4 P; T - ;; hit the "OK" button). Display the message only if CHPROP fails for6 P- _8 N( \$ S& |3 v5 B
- ;; some reason, because it is not the expected behavior of the command., y5 |/ G# ^+ U" W0 ~ J+ v) V; X
- ;;6 v& c* X7 t2 H6 y* o8 d' m9 @/ r; C
- ;; (princ ;|DDCHPROP2_LSP_8|;"\nProperties unchanged")
' x+ V% I7 g7 G+ k" ` - );if
, X. x4 p/ ]' }7 k* b4 G - (princ)
! Y- h' U7 ]- ]& l - );defun call_chp2
6 D# ]" D+ l U% X; j+ @# c3 Q - ;;; e- a& r# h+ d8 n
- ;; Function to set the Color text tile and swab to the current color value.3 Y4 h v3 p7 N( m' _/ ]0 O
- ;;. X7 c$ a/ k: D* q( n' H- x% i. G
- (defun set_col_tile()
; o- r7 M9 c9 s+ K+ m" c" h - (cond3 ~7 v1 v0 W7 y* w" Q
- ((= ecolor nil): l+ p1 z" V& i7 j( v2 G
- (set_tile "t_color" "Varies"). v+ p5 u% D6 W) A5 [$ o
- (col_tile "show_image" 0 nil)! V# b3 v( P4 x' J8 _
- )
* j- |& G N9 H# ]6 a - ((= ecolor 0)
0 u6 `+ t4 M. H5 [( b3 c - (set_tile "t_color" "BYBLOCK")2 k& i- W( V% ?- W! x, h
- (col_tile "show_image" 7 nil) ; show BYBLOCK as white# X1 P" ~ y0 o7 L
- )
Z, o, g. C, G e2 x - ((= ecolor 1)3 q1 N0 n N6 E6 n
- (set_tile "t_color" "1 red")
/ X2 a/ N0 P8 M5 [4 d, @ - (col_tile "show_image" 1 nil)
& a* o# y2 z, c6 S# r0 g9 d - )& e. Y F; M5 D1 l: h1 X3 q% D
- ((= ecolor 2)
4 y/ P) Y; T a - (set_tile "t_color" "2 yellow")
" i' E6 |8 p9 ~% m - (col_tile "show_image" 2 nil)
; d/ L+ n" w* J% ?3 y( c - )6 U5 z. f8 P; z* p n
- ((= ecolor 3) _, X* w4 _( P4 \
- (set_tile "t_color" "3 green")
) _9 p! y' h9 D) C# I3 y2 }( X - (col_tile "show_image" 3 nil)* ]+ z' |1 B1 z' U( T$ c- m( x% Z
- )
) ?9 v7 q& v0 L$ n% A. G7 y/ | - ((= ecolor 4)# f7 m# `0 N! m5 C7 p: [
- (set_tile "t_color" "4 cyan"). T" I1 a* D C
- (col_tile "show_image" 4 nil)
) S) x; Z+ p% j1 I0 D: i4 L - )2 _- m& J# g* V1 k& I; ?2 b6 ~
- ((= ecolor 5)$ r; O* t" a: o* c5 |6 ^
- (set_tile "t_color" "5 blue")* n* ~) f5 Y3 \
- (col_tile "show_image" 5 nil)- z2 n# j. |1 y
- )2 z @% h; ?, D# u
- ((= ecolor 6)! X0 v- U9 O! y6 @* ?( M0 y5 x J
- (set_tile "t_color" "6 magenta")
1 T) Y9 A2 M9 t: u& k - (col_tile "show_image" 6 nil)
8 s4 J! ~* J& G - )
2 r$ R- t2 t# o S) \6 O - ((= ecolor 7)
( @# {' h9 c" g# u - (set_tile "t_color" "7 white")/ w4 ~- x1 F* N4 v, B% D2 U
- (col_tile "show_image" 7 nil)
0 l* z$ h* H1 E s; o- `) { - )
/ i2 @/ c- `; f - ;; If the color is "BYLAYER", then set the tile to
8 R* J4 A6 j j4 R3 J - ;; show it's set By layer, but also indicate the; ^1 b |- g( n+ A F
- ;; color of the layer - i.e. By layer (red) U0 b6 Z0 _+ d
- ((= ecolor 256)
7 l( H3 _. b# o9 m# ^ - (set_tile "t_color" (bylayer_col))
9 Q" e5 P3 i- Z# Q6 t# g) X - (col_tile "show_image" cn nil)9 s) Q1 d0 g' c4 k
- )
) D, y5 C: P* K; h$ C - (T
/ t$ l5 T3 Y& x, s - (set_tile "t_color" (itoa ecolor))
" ~( h& i( B- E9 O/ Y8 U) k - (col_tile "show_image" ecolor nil)3 J: d* ?' p; j+ S! k. k. R
- )9 o; C0 ^& K+ v7 E1 n
- )
3 |3 q/ T" }7 Q; n. X - )
0 M( f5 c; f/ a" o/ W7 j6 _ - ;;
7 S# i1 X( F. Z# w - ;; Function to put up the standard color dialogue.. Q+ T. z5 @4 g3 t. A* f
- ;;3 Z4 ]* D6 @" \0 }
- (defun getcolor(/ col_def lay_clr temp_color)
h) c: I w3 ?4 G. J - ;; col_def is the default color used when rq_color is called. If ecolor# I% Q0 V$ n( Z( F. H8 I
- ;; is nil (varies) then set it to 1, else use the value of ecolor.: r- C3 H* Q# s9 g6 [. J
- (if ecolor
' u Z7 D7 G4 k" v% E2 }' B - (setq col_def ecolor). x. N$ L' k9 q
- (setq col_def 1)
: B; q+ E3 A' B* n S3 l# X - )
9 C2 J/ U. P9 `% o/ e - 9 ^5 [) P5 _! F# a1 _% G( S: W
- ;; If we're working with a single layer, get its color5 @ \6 c$ P" d/ Z
- ;; for use in the color swatch if the user selects color BYLAYER.' k+ n1 o" [: a. J# c' ?' k; \
- (if (/= elayer ;|MSG0|;"Varies"). V m6 R$ K1 l6 \" w
- (setq lay_clr (cdr (assoc 62 (tblsearch "layer" elayer))))2 p }7 V% z# }2 `' \: }, e& W
- (setq lay_clr 0)
" W* ?& S, L: Z* u - )
8 @0 A* j; ]% ?, f5 w - (if (numberp (setq temp_color (acad_colordlg col_def T lay_clr)))3 T; j0 A, E5 M5 m- ?, _. ]
- (progn( m2 g- m6 B# ^
- (setq ecolor temp_color)
0 {3 c3 p2 k4 j - (set_col_tile)# F* q/ p! w/ T T5 I
- ecolor
- B7 l, \) I% J% }* h+ w" m4 Z - )
8 T1 q* N. G i - ecolor
6 b. E% m5 _$ y6 ]) V - )1 e5 r: l3 R. d( c+ b
- )
% o) E; I5 S8 x) W! Q# \ - ;;
5 G4 T! T* C1 [" ` h g1 ^ - ;; This function pops a dialogue box consisting of a list box, image tile,4 \7 j- O5 [2 F/ B2 P
- ;; and edit box to allow the user to select or type a linetype. It returns* W' a' m* }7 S( j7 A7 l
- ;; the linetype selected.# q8 i6 `1 K* p
- ;;) E j8 y# v0 r
- (defun getltype (/ old-idx ltname)8 Q3 @' V5 K) {6 Y: I9 Q1 e
- ;; Initialize a dialogue from dialogue file& N9 N4 [9 ?- n4 ]* V
- (if (not (new_dialog "setltype" dcl_id)) (exit))4 E, D& `9 m9 E$ y' M
- (start_list "list_lt")& m1 x, O1 R. J) X0 g/ X- p5 [" j
- (mapcar 'add_list ltnmlst) ; initialize list box
/ I9 D z4 `' A/ ?6 B( V6 M% o - (end_list)
* }# z8 M) E! f& e( q: @5 Q" T, J - (setq old-idx lt-idx)
: _+ K# H7 c! E5 L! G9 R - ;; Show initial ltype in image tile, list box, and edit box
( l: M# \7 E& q: S+ U - (if (/= lt-idx nil)
1 [% d8 y& r) j7 K q5 G3 @- z - (ltlist_act (itoa lt-idx))
: ]7 D( y. ?/ M( ] - (progn
7 f. n7 T# x) j# P e - (set_tile "edit_lt" "")" [; N; w9 p! {0 P$ U. O4 z2 _: d
- (col_tile "show_image" 0 nil): D& s/ u4 T/ o5 R+ n3 a
- );progn else
! c, a" h* i- {* U* y3 I - );if
c* Y/ y6 ^, F9 Z) A1 Y - (action_tile "list_lt" "(ltlist_act $value)")5 i- w. {$ q/ [
- (action_tile "edit_lt" "(ltedit_act)")# p4 b% G; ^3 h" d5 T
- (action_tile "accept" "(test-ok)")+ B; A/ v) H( E; N
- (action_tile "cancel" "(reset-lt)")9 C( W W9 I/ h0 X: o
- (if (= (start_dialog) 1) ; User pressed OK
+ k/ ^: N4 ]4 @4 V+ k. z - (cond
( K( Y) [4 n. `/ s - ((or (= lt-idx nil)
8 Z8 b! E, z; o6 W. @ Z - (= lt-idx (1- (length ltnmlst)))
, F( _) j( I, c: l( n9 X- X+ g - );or; a) I: R6 E7 d4 Q c3 a4 ]5 q
- (set_tile "t_ltype" "Varies")/ F' y1 j7 }$ V$ }9 ~
- ;|MSG0|;"Varies"
i0 o) w% ?4 y5 p. g) D - )' p0 O7 p0 i& }$ i4 T4 b9 m
- ((= lt-idx 0)
2 I2 N5 T% o) F! O% C - (set_tile "t_ltype" (bylayer_lt))
/ M+ S7 m) Y! |* X! f - ;|MSG0|;"BYLAYER"6 O* F# x$ _* d0 f
- )
7 _0 n3 K8 R# F l# O) X! ~ - ((= lt-idx 1)) v3 Z' C3 r6 }, F3 N0 [" j
- (set_tile "t_ltype" "BYBLOCK")) O% J: q" u* j4 s, _" ~- D
- ;|MSG0|;"BYBLOCK"* e0 t8 }' j- K0 j. v! y+ B5 F
- )
" I, t- b/ [7 A7 N4 B( r - (T+ E; X, L1 F" ?3 y4 X3 p
- (set_tile "t_ltype" ltname)# @5 A0 z7 D/ _
- ltname0 {/ ~( `+ w5 n+ k# Z( e) i3 f# y
- ) H" J1 T9 y; w- s8 w
- );cond then
2 H2 a) @8 E# B% w7 h7 r0 |. w - eltype8 m- @7 U0 E+ l, w' ]3 W0 L
- );if- g9 ^, T1 i) D! v
- );defun
. C6 X+ d+ H9 h1 s5 X) E - ;;% Y! Z6 v i$ |/ s
- ;; Edit box entries end up here
6 T m7 g$ I, S z/ ?: Y* L, x& g' S - ;;+ Q7 Q: b) M& X- `" ~3 V8 Q3 C
- (defun ltedit_act ( / flag)* q {5 k9 K$ t9 u- Z
- ;; If linetype name,is valid, then clear error string,$ g1 {3 G$ p# f
- ;; call ltlist_act function, and change focus to list box. k+ [! c* U0 ^9 x: i0 G
- ;; Else print error message.% M' u6 V; I. K8 `( a4 q
- % @) D$ [3 c% O0 t/ [
- (setq ltvalue (xstrcase (get_tile "edit_lt")))0 E% N/ J6 Z7 w
- (if (or (= ltvalue ;|MSG0|;"BYLAYER")* n G, I# b. v1 n
- (= ltvalue "BY LAYER")2 @7 n0 k0 `* ]6 @
- )
% f7 R. s' R1 z7 R6 h# l - (setq ltvalue "BYLAYER"), j" X( t( {+ t. y
- )1 `* p3 J# A3 E8 l( k m6 J
- (if (or (= ltvalue ;|MSG0|;"BYBLOCK")0 c- ~2 s8 i: n
- (= ltvalue "BY BLOCK")) I' u& }/ F8 V+ o
- ), ?& v1 K/ Z5 L; D- ^* y! f
- (setq ltvalue "BYBLOCK")
8 x& t. |" { O. J# M: w! G6 | - )
* ~! w. ?0 \7 ~- J! [ - (if (setq lt-idx (getindex ltvalue ltnmlst))
2 o; Y) j l$ \5 C* D7 [; X - (progn5 z8 o W5 a. d; T& ?
- (set_tile "error" "")
8 ~& ]/ m6 R$ |' B3 C6 O - (ltlist_act (itoa lt-idx))3 S# t' f j6 Y( h4 I
- ;(mode_tile "list_lt" 2)
& b1 E, i" D) }8 i L! U# D' U% E* ` - );progn then
7 e+ V0 A0 z8 S0 Y, ^$ Y - (progn
# P- y% a1 I( |* t8 r* p5 i- W - (if (/= ltvalue "")8 E2 u$ U# ^6 @6 W
- (progn
2 k4 a y2 }; T. O b w) O. b - (set_tile "error" "Invalid linetype.")$ P$ e( z' v9 ^. v! i* F2 Y( S. Y: b
- (setq flag T)* h% ], W3 o& c5 c: ^' T: v
- );progn5 o# O4 `0 w6 Y& |. k3 ?4 M
- )( X# j: J- F. Z9 i
- (setq lt-idx old-idx)6 r* E5 H T8 b! @1 x
- );progn else' Q: ?0 T) F$ a$ f$ ~0 c+ Z. ]
- );if& G0 v1 G- }) o& O/ X2 m. N
- (if (and (not flag) ;added so a return will take you out of the dialog.3 w* a6 l/ d+ _: s
- (= $reason 1)7 P7 v' w: Q- ?
- );and8 i& X3 j/ z' [( D
- (done_dialog 1) / \! Y; }7 }- N
- );if : |+ ~8 I: j; r* E5 t4 T: S
- );defun ltedit_act
1 R0 C( }& ]- j7 Y - ;;
6 r" Q8 M! ?0 f - ;; List selections end up here
; U7 u, O- G( ]1 ] - ;;9 d0 h) R8 Z! E; W+ Z
- (defun ltlist_act (index / dashdata)
: u. E& q5 I0 A- q2 b - ;; Update the list box, edit box, and color tile2 F6 z% W4 e6 L/ Q: M
- (set_tile "error" "")
( J4 X w7 Q4 V7 j - (setq lt-idx (atoi index)): h& o( W3 \7 j1 q6 y- s+ b# \
- (setq ltname (nth lt-idx ltnmlst))
. t$ z# h1 }: p% ] - (setq dashdata (nth lt-idx mdashlist))+ t. F! X; {2 ]& R7 X8 x4 Z4 \3 W
- (col_tile "show_image" 0 dashdata)
$ i% M0 M* x% R0 \* J - (set_tile "list_lt" (itoa lt-idx))
: h: @' [, `9 z' ` [; e - (set_tile "edit_lt" ltname)
! a' b8 [9 h- k4 `: k; D - )
4 H3 R9 N m/ z; q7 w+ H - ;;( {+ M6 ?/ N |% D
- ;; Reset to original linetype when cancel it selected; G% c% F, q4 q' N
- ;;
! W; N7 Q, d9 f& V$ g2 f- v - (defun reset-lt ()0 s8 x7 d& j# {% n+ k% z# [
- (setq lt-idx old-idx)+ S7 x1 z, q" K
- (done_dialog 0): t; {2 ]" {% P3 G6 D
- )
. e+ m8 C. J$ d ?5 j3 `1 Y" z - ;;' f$ v: X9 [; B( {
- ;; This function pops a dialogue box consisting of a list box and edit box to
% u# V4 v" X* Z - ;; allow the user to select or type a layer name. It returns the layer name
: k* S. V+ v4 z4 U! { - ;; selected. It also the status (On, Off, Frozen, etc.) of all layer in the2 p$ Y' f2 C* X0 E, ~1 H
- ;; drawing.
/ e) f) C% g4 D" k - ;;
! p+ E$ R# f0 V+ l( z" a S - (defun getlayer (/ old-idx layname on off frozth linetype colname)
3 x+ B% K5 P! J4 e: Y( r - ;; Create layer list the first time the layer' \5 p/ X8 r) w% \ w
- ;; dialogue is called.
5 `. r, X* O5 y( d. e5 { C! T' s - (if (not lay-idx)
! M" S1 r' U2 q, B. X! x I$ B0 W - (progn' j3 K' |5 w* @' d- Z& d% w
- (makelaylists) ; layer list - laynmlst3 e/ o4 a( N. a! P! H
- ;rk+ x" c0 j' {& L1 }
- (setq lay-idx (getindex elayer laynmlst))- Y8 d+ [" [# D8 `: l r& X# a3 V
- );progn( N* ^( {& Q u d% o$ Y8 ?
- );if
9 |9 V* D9 k. F3 R" |
3 z. u- w, e5 ^( p3 Q+ a/ \( Y- ;; Load a dialogue from dialogue file
$ g. R2 {! p+ Y0 ? - (if (not (new_dialog "setlayer" dcl_id)) (exit))
% m, v0 ~; D& ] - (start_list "list_lay")' ]& p- ^! P1 Y; ] F/ q0 V
- (mapcar 'add_list longlist) ; initialize list box1 z, S' p. Q6 ^0 _1 I, W
- (end_list)+ S) F) q n7 N! q9 Q1 {0 P
- ;; Display current layer, show initial layer name in edit
5 t4 G ?- P3 F1 l! u - ;; box, and highlight list box.( K8 F- l; D6 V3 z
- (setq old-idx lay-idx)
% Y. U0 _) `2 S4 f8 E; w+ g - (if (/= lay-idx nil) (laylist_act (itoa lay-idx)))
3 Q$ B3 _ k8 Q) B2 \: x# E) L - (set_tile "cur_layer" (getvar "clayer"))( n% e+ k/ g/ n# [7 Q. Y S; K
- (action_tile "list_lay" "(laylist_act $value)")
# f8 y1 E! R; a5 a4 V. X7 O - (action_tile "edit_lay" "(layedit_act)")
+ f; o3 F* k$ T6 X, P5 x8 u0 K. g - (action_tile "accept" "(test-ok)")
& P! O* l+ v6 X, M - (action_tile "cancel" "(reset-lay)")
0 b2 Q6 S8 _6 P9 L/ V - (if (= (start_dialog) 1) ; User pressed OK! w5 E3 {4 c1 u
- (progn
, I3 r" W+ G8 A! f - (if (or (= lay-idx nil)
3 P6 T7 B% p% A% g - (= lay-idx (1- (length laynmlst)))$ H: F) @: Z4 u1 O8 u
- );or
) [0 X* c) {+ W$ E- F' U' ~- B - (progn* ^2 B: ]0 j0 Q' f3 e
- (setq lay-idx nil)
. N4 w; g3 L0 E - (setq layname ;|MSG0|;"VARIES")
1 Y+ T8 X% o* c, }7 Z - (set_tile "t_layer" "Varies")4 L8 I- G0 x$ i3 I+ l; l
- (setq layname "")
' C1 h9 ?; C7 }( d1 E5 ?0 \, X# f - );progn
* g0 n9 y3 s+ L - (set_tile "t_layer" layname)
# @* j3 j* S# i% ^/ a! ` - );if3 f9 l" O- A' e. y! P- g$ ?. U" d
- ; If layer or ltype equals bylayer reset their tiles
! _% m/ u! ~' i! _9 Y - (if (= lt-idx 0)
8 O2 B3 @2 u, o/ N: E - (set_tile "t_ltype" (bylayer_lt))
; u& D, I4 x# r( r - );if1 v+ o' {9 J- @9 J6 u
- (if (= ecolor 256)
3 I! e9 Q& _7 h! m/ R6 } - (progn( w! v$ x b6 e
- (set_tile "t_color" (bylayer_col))
3 \- Y. ^% T L; t - (col_tile "show_image" cn nil), E( d$ x: T/ J' [) }
- )
' u: G1 K; ?# J# A - );if
* n) r; P6 e* V2 {$ f/ l( @! \ - layname0 l3 z7 A% n" d0 x
- );progn
; x/ y7 _+ }( j4 B - elayer
$ ~; z' a7 N/ O; q4 o - );if
8 C, ~+ L; C8 z: c# M( M - )
0 a7 i$ ?8 [, E+ _5 W" z C1 ? - ;;
& {3 r$ M) r8 J) } - ;; Edit box selections end up here
: b- a( {1 j6 v1 X$ Y3 n8 ~ - ;;, Z- J4 P3 u8 R
- (defun layedit_act(): }' U9 G9 F7 a' m+ W& }! e
- ;; Convert layer entry to upper case. If layer name is
4 v* H5 x: G6 c - ;; valid, clear error string, call (laylist_act) function,
4 M# d- s. M7 J0 D I! S - ;; and change focus to list box. Else print error message.0 T8 M e; B) J: i
- (setq layvalue (xstrcase (get_tile "edit_lay")))8 L& q# ~3 Z) d; h
- (if (setq lay-idx (getindex layvalue laynmlst))
4 y" V |4 z# B - (progn
6 |7 P- t z, Z - (set_tile "error" "")$ l# R& s# d' m4 R
- (laylist_act (itoa lay-idx))
& j- a& ?" R4 d1 b: A# ^ - )' m+ y- E! z, m
- (progn
/ N+ R. {" f3 l: }, o5 h: s - (set_tile "error" "Invalid layer name.")
3 L9 c* q: z, Y3 B - (mode_tile "edit_lay" 2)) {3 i) ^- s' j. R/ ~$ f" l& u
- (setq lay-idx old-idx)
: @( R2 W' ]3 V1 z8 E) y) b1 e) t - )
4 I3 w3 C( D& B4 I3 u+ O - );if
2 }, \) f+ w6 v5 F - );defun+ q, c- o- O" L5 t; M
- ;;
! u( ^; R4 Y o% M& P - ;; List entry selections end up here$ J; w0 ?/ E2 g4 ^# E
- ;;- k- @+ f1 A6 h; A3 T* x6 f
- (defun laylist_act (index / layinfo color dashdata)
; v, D" g$ t0 E& i# E - ;; Update the list box, edit box, and color tile
- x3 v9 w9 L/ P3 h& H V% m - (set_tile "error" "")- Q- [, E% R3 y' v# k: _+ G+ S& R5 U
- (setq lay-idx (atoi index))# _% V" }0 t* ]0 Z0 v, f
- (if (not (equal lay-idx (1- (length laynmlst))))
1 Y, z9 D* R& g7 q0 E - (progn
) C: |( \1 X* l( Q' T c9 Z) q - (setq layname (nth lay-idx laynmlst))
8 W+ X( M; L! k T; M - (setq layinfo (tblsearch "layer" layname))
! n/ n# Q+ ?; Q+ R - (setq color (cdr (assoc 62 layinfo)))! K$ l/ J( ~* Z2 J# v, R
- (setq color (abs color))
5 D _( O, _/ ], c+ R - (setq colname (colorname color))7 i% B! d h; Y" L! I
- (set_tile "list_lay" (itoa lay-idx))
' i, @- F z1 A - (set_tile "edit_lay" layname)
3 \& } S8 R7 u0 H - ;(mode_tile "list_lay" 2)
' ~$ X, U% J3 L- S. Z) E) O - );progn then # o( W: C# E! D; L0 l. {
- (set_tile "edit_lay" "")
! {7 K ~2 m) I$ B+ d& t6 y - );if
( Y" i8 B8 J. T) v4 K4 F" T8 G - );defun laylist_act
3 ?3 Y) o# y! q+ m9 s. c% K3 L% } j - ;;
" x' k5 ?' Y5 d& { - ;; Reset to original layer when cancel is selected
. _3 X5 T& f& z- }3 { - ;;6 x, D4 o* Q. d/ J: Z3 ?
- (defun reset-lay ()* G1 @5 @' l( L% j* h6 T4 l- U
- (setq lay-idx old-idx)4 H& s m0 w4 S8 r
- (done_dialog 0)8 G5 V5 r( G/ w1 H7 `8 b$ p6 Z
- ) h p8 a$ h0 E0 I5 ~
( j5 f; d! j) F1 q I4 M- ;; Checks validity of linetype scale from edit box. It checks to6 w2 D8 f' a4 Y+ h: {& w0 {
- ;; see if the value equals "Varies".
% | d/ K, c/ Z3 p) G% d) ^% {! r - ; C8 f- i8 x( i7 O; s
- (defun getscale (value / rval): F/ @8 l# q' P
- (setq value (strcase value)0 W4 E5 w2 D" V/ y) S
- rval (distof value)
- N8 _2 O* X n4 S - );setq, K: L- |+ J: ]8 f% |. x( p
- (if (or (= value "")& e) m5 J, c5 k0 F
- (> rval 0.0)& P/ `3 y/ R: D' N% M+ |
- )' @1 p H& {5 }% a- g
- (progn
- q% l4 B% O8 f! Q5 F* M- g - (set_tile "error" "")
+ @: a9 M8 G* s! j1 A' M$ B - (if (= value ""); a& ~: V7 G6 [, d$ L) V) Y2 F
- (progn0 `% F2 P/ g% N8 n+ z/ _2 E0 b
- (set_tile "eb_ltscale" "")
# n$ H& H! n' z" I - (setq eltscale nil)
* G) X [/ s4 T8 }$ ^. g - );progn then0 [( o% }' j }. [% f3 s
- (progn
1 d- P" U* g" Z! A8 | - (setq eltscale (distof value))/ u: Q3 t# u% f& @
- (set_tile "eb_ltscale" (ai_rtos eltscale))
# D& _$ x: Y1 V% Q: ~' A - eltscale, H/ j9 J4 ?( D. l/ ?: {3 @9 m
- );progn else" u' N+ u0 ?4 F! \1 M
- );if# ?; A. s. ]/ g1 S6 U9 V3 ~
- );progn
1 N5 C9 P1 V& s) B2 s - (progn) R7 R4 S7 D) M+ u
- (set_tile "error" "Invalid ltscale.")
& j b2 V( j% ]- L! M s3 V& ~4 g4 _ - nil k( d2 X& b" r- w |% p. y
- );progn else+ h5 X8 @- b8 \# F6 w$ @: x
- );if& ?# t# W9 q0 u0 }3 k3 A
- );defun
- o! e" h0 h4 K/ ?* r: @2 d" v - ;;' F, \9 p8 ~- H- N
- ;; Checks validity of thickness from edit box. Since (atof) returns 0 when a
, K# ~' ?- i% B/ f+ S+ b. S. S - ;; string can't be converted to a real, this routine checks if the first# n7 g1 J6 H9 [$ `& E
- ;; character is "0". It also checks to see if the value equals "Varies".& j" L: t8 k" S! }8 f
- ;;
0 E0 ?: b; _: |- {8 ^# Z$ ? - (defun getthickness (value)) d. o" y% u: g, i1 a8 q" R: H
- (setq value (strcase value))4 @4 L8 v, ]9 X. ~7 J, N: A
- (if (or (= value "")
# h/ ~; ~4 @* e0 P - (distof value)
+ \. ]9 h- U, T% U* ~* S3 D - );or( C0 _! k: \1 f' v. ]. X
- (progn
% ?; f5 A. z. W' H - (set_tile "error" "")4 x! ?& k) Q! s2 s! r2 n
- (if (= value "")
5 M* e4 v( M+ z) {* [ - (progn
5 Q' p2 f1 P! G+ s' `2 x" N1 G+ x' d - (set_tile "eb_thickness" "")( {0 Y. C+ X/ M; F) h% ]7 N: I" [) B
- (setq ethickness nil)
/ Q1 n3 T' b0 _0 B: [ - );progn
+ C* \- F* Y9 B# D' \ - (progn
$ w4 o. P" u3 G' G2 F* l @ - (setq ethickness (distof value))
0 o; P7 }& c4 I8 e$ ~: e - (set_tile "eb_thickness" (ai_rtos ethickness))
. S# L" j8 k' |# V - ethickness
# ]8 @ L) E6 J6 x2 K! j I k - );progn& k7 q$ @) L4 \9 I# \2 i6 q0 m. Z
- );if; t5 D0 t9 q: n( y) ^: {7 C$ _. M
- );progn' J$ b- u9 L$ Q( y7 j3 X# d. e/ C" u- R
- (progn; p. \$ ~3 [ Z& A6 U5 @
- (set_tile "error" "Invalid thickness.")7 R1 P9 g# {7 h) S
- nil
% d2 Q# G2 w8 L# \5 K8 r; a* ?% x - );progn
& e* a8 u! }7 y7 I3 h0 s0 \ - );if
, @ k. i- u; M9 Z; F - );defun 5 N) I7 ]1 |, y7 X# M {- [' e
- ;;
5 J+ m" A. M/ m# ~ - ;; Checks validity of polyline elevation from edit box.
7 c, U$ i9 g5 J& O( n - ;;* n, Y- l" }; Z# {
- (defun getelevation (value)9 h7 W. z# u# ^- E2 _5 S2 G' a, H
- (setq value (strcase value))/ g1 h' g1 u% v% q- z; W
- (if (or (= value "")3 [4 R1 r$ H5 o# W+ d3 a( g
- (distof value)- k. ^$ p2 O# u1 q0 G
- )! _# X2 ?" t4 L) G5 E! l" U1 r% v* z
- (progn
* w$ _% p. ]7 V2 p - (set_tile "error" "")
# Q; C4 W, ?! M - (if (= value "")
" I7 O& t* i/ H L$ }* F/ _0 I - (progn% w! a( i6 E* @, Z- e
- (set_tile "poly_elev" "")
) y) W5 i& U5 D' K( @ - (setq eelevation nil)
. e* `7 s# W: I9 [ S3 |6 n' Y - );progn8 o7 w6 X |: S, p/ Y4 h
- (progn
4 k& n: L. x% ]5 E6 z. A - (setq eelevation (distof value))9 @/ ]: D. l, L6 d4 h( D
- (set_tile "poly_elev" (ai_rtos eelevation))
% [9 w8 T, E U y) f( z/ S - eelevation# C2 |9 a: j" u* J9 J* Y& P% ]
- );progn
3 U- ~1 t: U+ x" Y: ?$ q - );if
$ l9 T8 _" k0 X! v - );progn
( o# J/ Y- r4 g5 x" W0 G; j - (progn
" Q a' W6 z' Z4 l r - (set_tile "error" "Invalid elevation.")
3 _( m' u& f. Z1 Z$ B - nil
9 i* j& o2 s3 ?' D - );progn
7 C4 f5 u. K4 N' k3 M: p - );if
9 _! j6 @6 ]& V1 I - );defun) n' t2 c9 X4 i) \
- ;;
; k( Z* Z/ T, T" D - ;; Checks validity of polyline width from edit box.& R1 S* E$ L; e7 Z3 w0 ]! z
- ;;
r3 ^- U4 h, Q- j* z1 o - (defun getwidth (value / rval)
5 j9 y3 X( `5 m/ ?( T - (setq value (strcase value)) a' a" o; V7 X' n8 \9 c
- rval (distof value)9 d! f' I5 Y* o' h* E
- )
5 {, ^& h% X1 }8 Q6 ^3 K - (if (or (= value "")& P+ d* q- D3 L) ?5 S
- (>= rval 0.0)9 j& E8 I1 v' \3 Q& C
- )
" e& @# G. [* ^! G d$ } - (progn+ _0 C6 [6 c; R9 ?: B$ q
- (set_tile "error" "")
& \9 j/ W" R- ^, j. Z' ]# n - (if (= value "")
0 A; V0 D( ^- E0 s2 A o1 ~ Z - (progn' m+ s# L' L/ z
- (set_tile "poly_wid" "")+ t# y4 Q6 {3 ?5 W8 Y1 w
- (setq ewidth nil)
7 n$ @! p, l. c2 b: j+ F% q - );progn
7 ^$ C$ n- ^7 v, m/ f6 m% P - (progn& S# x1 p1 K n# F- f. b
- (setq ewidth (distof value))" I6 z4 i( d1 m1 e* ]- x
- (set_tile "poly_wid" (ai_rtos ewidth))
0 K9 z: U/ b0 U3 A - ;width$ _( c* R$ G4 v5 p
- );progn
9 H# D g1 [8 } - );if) k! }$ J: k% i6 p
- );progn
) G+ t3 s5 j# h- b2 B8 |( ?3 z) ?( G - (progn( T+ e. P, G# W: M1 E
- (set_tile "error" "Invalid width.")
+ g/ j' Q7 f* V0 j: r4 L5 U - ;(setq ewidth nil)
" _% `+ w; O1 N- V' k E6 S - nil 1 G& h# `" b" g+ c1 \8 K5 K
- );progn
4 ?8 `2 x$ ^" D# K' K - );if% ?& \ G$ X6 v( m+ Y3 ]/ U% B0 G& [
- );defun1 A! u. O, S8 p
- ;;) h1 f# {5 `3 N ?2 S- U
- ;; Checks validity of text height from edit box." `4 B4 Y, A9 k+ O1 r- }
- ;;" S# j9 @/ f! E
- (defun getheight (value / rval)9 |4 a% e7 }! ^' l2 _4 L
- (setq value (strcase value)3 Z* u! m. N, ^" _ L
- rval (distof value)+ O% U& j2 A! h0 K
- )- d7 \% V2 x1 |# n( y2 h
- (if (or (= value "")0 [; ?) R4 t% {" \
- (> rval 0.0)
2 G9 P8 B- q. X2 ^! w# k - )7 V1 H8 h4 X3 b E
- (progn* h' I( S* n c4 A1 a
- (set_tile "error" "")5 C9 d4 L+ u- Q, R, E- O4 m( T8 @# J
- (if (= value "")
/ E, O! D$ e) g% u7 B6 G3 F# } - (progn9 q" @ f- T; K! ~
- (set_tile "text_hgt" "")
: p" W3 ?4 v' f4 @ - (setq eheight nil)% x& r/ a! a/ ]9 @$ j
- );progn
' V. d( N3 i* o+ x8 X - (progn; l% H( E6 F- n0 s9 S
- (setq eheight (distof value))
0 T/ l& _; L5 _* N, w# D# ` - (set_tile "text_hgt" (ai_rtos eheight))
8 T8 u7 K; P4 U( [/ G - eheight! i" o5 n4 R. I% V' W1 T* o: R2 Y( ~% f
- );progn1 K$ p- C7 J3 E& N
- );if1 D; I7 s6 z6 ^, [# p' A2 }$ v
- );progn
( ^; d4 I- v T( @ - (progn
8 [9 X. s) J( r X& A3 _ - (set_tile "error" "Invalid height.")3 H) {+ c3 c- A, { I
- nil0 B C2 n( n. D* ]9 i
- );progn
; }! \. A1 b+ w: ^6 B$ g - );if. y( u; x( e _! n5 K$ q$ ~: r9 j
- );defun
: I; M( i* h& R# S" U - ; f9 m" a v: J
- (defun getstyle (value lst / rval)
1 U8 o4 k+ `) D/ e - ;(setq value (strcase value))
: Z$ ~+ C' c. y - (set_tile "error" "")
& A: w0 t8 L) t* C - (setq estyle (nth (atoi value) lst))
- j2 o, L( w8 p6 e4 i0 }. ` - (if (equal estyle ""): `( }% S+ M* U# s1 z* l
- (setq estyle nil)6 }# t# {3 ?3 U9 C' }* H' Y& Q& [
- );if
6 E& c. y7 S! W( y9 V - , o8 ~, {$ `' d/ F
- );defun getstyle! B% i0 k6 u+ W$ L5 x8 U4 q
# w [+ H' G1 ~, p/ B: [8 p- ;;
# \; J. \! L( Y. a# Z) t9 Q, ~+ `) w - ;; This function make a list called laynmlst which consists of all the layer v O, D, [2 j5 O- q/ w
- ;; names in the drawing. It also creates a list called longlist which2 P1 B4 ]4 m7 v& F4 ~/ p1 X
- ;; consists of strings which contain the layer name, color, linetype, etc.
4 E+ i" h1 M3 X$ C0 \6 y5 I6 O - ;; Longlist is later mapped into the layer listbox. Both are ordered the
8 L. A: ]3 P# R! B& V - ;; same.
5 Y A; }7 f/ x: m p2 U5 V - ;;
; ~3 j+ U- W' N( S - (defun makelaylists (/ layname onoff frozth color linetype lock vpf vpn ss cvpname
" A( r) D3 n" T' W2 W! a$ [ - xdlist vpldata sortlist name templist bit-70
. p- g* m O0 J$ g4 K( [0 M& J - layer_number
/ [; m: ]+ _! }! ^8 ^ - )8 a% e, w+ B4 u* v
- (if (= (setq tilemode (getvar "tilemode")) 0)
3 S: D( S$ }- ]. K* ] - (progn
5 C6 C# _2 z$ k2 V - (setq ss (ssget "_x" (list (cons 0 "VIEWPORT"): D8 s- ~( C% u8 N) L5 t
- (cons 69 (getvar "CVPORT"))
% @) ]3 g: `9 {3 a7 [' M8 ?+ } - )# d" s. f; F, }$ L3 V
- )' ^( e9 x( X% m
- )
! }& h7 m6 ?0 K; a: t8 M, y6 j - (setq cvpname (ssname ss 0))
: C) M% E7 g U' @3 n- f0 n - (setq xdlist (assoc -3 (entget cvpname '("acad")))). J) z& H! S& A" G* V/ t% S. |
- (setq vpldata (cdadr xdlist))4 y) K b# ?7 X- {
- )
9 F' M8 | ~& B- ~: I/ Y - )
) D+ C0 j; {& V! {- s5 P - (setq sortlist nil)
& K5 [0 H2 p+ a# n( j - (setq templist (tblnext "LAYER" T))
$ W- H8 ^, y/ ]+ R# I* P* ~: { - (setq layer_number 1)
) t+ Y5 y) `& v6 D) [( h - (while templist2 P! g, {6 z, O6 v# G0 n
- (if (not (equal 16 (logand 16 (cdr (assoc 70 templist)))))
+ y8 Y" ]1 i) E1 a* ]9 u; C: q - (progn
# ^1 y! U! i& l2 a' ]; Q - (setq name (cdr (assoc 2 templist)))
# T3 P) P* c+ g, E& z - (setq sortlist (cons name sortlist))& ?0 o9 R. a9 _, W7 @
- ;; Not dead message...
|# m- O5 D2 m: u; b4 w4 n - (setq layer_number (1+ layer_number))
( x& B v4 {2 ] - );progn5 Y& @" E3 z' J1 w M" D
- );if3 m% [' d$ O, u$ |7 D
- (setq templist (tblnext "LAYER"))
4 h3 f" h7 x" m - (if (= (/ layer_number 50.0) (fix (/ layer_number 50.0)))/ C/ e9 W z% T4 Q5 o- K
- (set_tile "error" (strcat "Collecting..." (itoa layer_number)))
4 ]& j( q) @2 u6 i% S& N/ v - );if* G# R9 m: u6 v- P$ l4 |' R0 l5 e
- )5 q3 H% R1 |! M8 | F
- (set_tile "error" "")8 O# N. t7 F5 v$ x) k# m5 s) Z
- (if (>= (getvar "maxsort") (length sortlist))4 j6 J, U6 D$ p2 |0 o2 Q0 r
- (progn
0 U3 g% L7 t# Q% d. r - (if (> layer_number 50)
9 S/ ^/ V6 _3 q - (set_tile "error" "Sorting...")- m Z( ~. P0 L; [# Q( Z8 A B
- )
6 K- m& g3 {, C9 v - (setq sortlist (acad_strlsort sortlist))& ^4 u1 n! W& n( ^* u
- )* P1 J) s( `8 ^( K8 a k8 x9 p
- (setq sortlist (reverse sortlist))' x+ K- ~7 R! D$ `# [/ q: _3 X
- ) B, p+ I' {& e0 e1 u: D' B
- (set_tile "error" "")# [& L z- a# z2 t+ H$ T
- (setq laynmlst sortlist)2 x! R4 u; r- z! P: R
- ;rk * Q2 N+ m I+ R" c
- (setq laynmlst (append laynmlst (list "")))
! `- r8 `/ Y, ?8 ` - 0 o; z( j7 G+ S$ t# g, y
- (setq longlist nil), R/ s1 W2 b. [1 M1 T, s9 L! |
- (setq layname (car sortlist))& M' H/ f9 F K2 f! l/ O
- (setq layer_number 1)5 o7 S P- u; M1 a
- (while layname9 j7 F8 ~ n. K8 [
- (if (= (/ layer_number 50.0) / ?4 J _- j- l8 m# D4 }
- (fix (/ layer_number 50.0))
' ]/ \# o& b; [* |) z. s% S7 n9 z - )8 e+ e4 v3 P V$ @& q+ g
- (set_tile "error" (strcat "Analyzing..." (itoa layer_number)))
/ r* P/ w" R" s) l - );if
+ n: q6 L: T. n. K3 o. j# R% u - (setq layer_number (1+ layer_number))
& F! W+ I- |+ O, O- m4 Y - (setq laylist (tblsearch "LAYER" layname)), }1 |7 P& v R: X5 G: r
- (setq color (cdr (assoc 62 laylist))); ~* a( ~# J; n9 d/ V* e
- (if (minusp color)7 j1 @: m. ^7 p
- (setq onoff ".")
1 V* q% i; f' {5 K/ f+ F - (setq onoff "On")
, k. L# ]0 r s4 U m b - )9 p8 ]! Q3 j5 z& t6 e. ` h5 Z! \4 o
- (setq color (abs color))
. Y) T' I' D& p" e: t3 N r - (setq colname (colorname color))# y, B9 k5 X* Q0 n- L& f) W# I
- (setq bit-70 (cdr (assoc 70 laylist)))
+ _% m. M2 c" C7 t3 F+ ? - (if (= (logand bit-70 1) 1)) N1 T0 r, f# \/ n
- (setq frozth "F" fchk laylist)5 X& }1 L- Q7 A
- (setq frozth "."), M9 x% g1 [, }
- )
& |2 S! E& k, A- z - (if (= (logand bit-70 2) 2)
2 e! ^+ x$ ?! f7 Q' V) B, H! J - (setq vpn "N")& Q$ V; |1 m, Y
- (setq vpn ".")3 W: K! r% e; g6 \
- )) A5 A$ ~+ z! T7 R, R
- (if (= (logand bit-70 4) 4)* B. g$ s, B! }0 ~
- (setq lock "L")
, Y8 Z2 d: H i, h* C. Y$ b4 F - (setq lock ".")
4 d" O" G- Q7 w# S. ^1 W# p - ), g3 j; \, X. _' }
- (setq linetype (cdr (assoc 6 laylist)))2 u# b4 @4 N' X, l
- (setq layname (substr layname 1 31))
6 m; b5 |. B. ?- S' `6 U e$ F8 E - (if (= tilemode 0)3 F" K' \: l1 ]+ R
- (progn
2 _; p/ n' ~) u: O: A, o. t- | - (if (member (cons 1003 layname) vpldata)1 P: K- a- z! {$ x
- (setq vpf "C")
8 O+ i) b2 t+ _2 j - (setq vpf ".")6 m, F9 L$ K& G" o- X
- )
& C& J2 b, M; e4 U5 e. ]; h" p - )
" ]- y+ a; ^! d1 W" F - (setq vpf ".")# z3 K) a+ j5 u7 g( G
- )
! H- y! X- [; E+ S$ H2 [ - (setq ltabstr (strcat layname "\t"
; H, i. P7 }* ^# X a - onoff "\t"
) x7 m0 }4 `) z. n6 v" d$ E - frozth "\t"5 V- F5 [* ~5 O+ w( |% y: f& q' b
- lock "\t"
; r9 A8 M2 y1 v$ p# z - vpf "\t"
$ p* x: l8 m& X0 V/ `; ? - vpn "\t"
. s& x% Y9 u; ]' {/ M8 b4 s - colname "\t"
: a! B. p3 b, j, B' k - linetype. X* S, z& {: V/ E9 W; |& O8 q3 p/ o/ ~
- )8 f% r. I& _6 G" H, w+ x7 F
- )
/ R+ C1 z/ v$ x- a# \ - (setq longlist (append longlist (list ltabstr)))1 X6 ` g+ W& l! u4 S; E: d
- (setq sortlist (cdr sortlist))0 S/ S, U, h1 G, _6 I# a: d
- (setq layname (car sortlist)) w% x5 X; ?! y
- );while$ B8 [6 Q- s" u! x8 a
- (setq longlist (append longlist (list "")))
' A, ]+ _- ]1 v3 a& j. ` - (set_tile "error" "")3 c- U7 T4 o0 F3 A7 I8 h# L
- )1 R) t8 ~0 f* z* q2 G/ U6 n
- ;;& r3 a0 _* Z g6 F
- ;; This function makes 2 lists - ltnmlst & mdashlist. Ltnmlst is a list of
) a# y9 `! m2 C1 I. B" l - ;; linetype names read from the symbol table. Mdashlist is list consisting
9 h- m7 E3 e# O6 H - ;; of lists which define the linetype pattern - numbers that indicate dots,
1 k: M* N8 e7 U0 X: ~6 X, X - ;; dashes, and spaces taken from group code 49. The list corresponds to the
7 e3 F/ J! m' k - ;; order of names in ltnmlst.
" y+ G5 b" c! ], I! t& _ - ;;
" Q; t2 t3 a) ?6 D O- m - (defun makeltlists (/ ltlist ltname)8 j* V+ j" \8 t# Y5 L, Y4 A: }
- (setq mdashlist nil)/ h, W8 V* {6 k& C
- (setq ltlist (tblnext "LTYPE" T))6 @' l- f/ Z# |& l# U/ h% e0 v
- (setq ltname (cdr (assoc 2 ltlist)))
+ a; @, ~# r) P7 e5 {/ }1 z - (setq ltnmlst (list ltname)): X) J8 b1 q4 v, d
- (while (setq ltlist (tblnext "LTYPE"))/ f! _2 p: J! J) Z$ I2 L/ W
- (if (not (equal 16 (logand 16 (cdr (assoc 70 ltlist)))))0 T( j* O& p, ?1 v. V- `6 Y
- (progn $ R* L1 M- l' x: u
- (setq ltname (cdr (assoc 2 ltlist)))
0 m1 s9 a! C! {: p( l y% t: X - (setq ltnmlst (append ltnmlst (list ltname)))
# l- s% v9 M" C& I1 b) e3 J - );progn
4 l+ |$ l. z( F: D9 s - );if ' ~5 N1 _- _$ {; b$ p
- );while/ Y( K# r) D+ H! X3 A8 O4 l" j
- (setq ltnmlst (acad_strlsort ltnmlst))1 V9 z& S* G( O f$ J
- (setq ltnmlst (append ltnmlst (list "")));add by rk
0 i9 o, `- r- e' s+ w7 H% B - (foreach ltname ltnmlst8 d: t9 |! g! Z" B
- (setq ltlist (tblsearch "LTYPE" ltname))7 T5 P0 u; y' z$ Q$ N& ~, N
- (if (= ltname "CONTINUOUS")
# w" e2 i' E# m$ `# b5 g, R, q - (setq mdashlist (append mdashlist (list "CONT")))
% ~) S8 V' D% K - (setq mdashlist
! [8 o7 E/ P9 c5 v - (append mdashlist (list (add-mdash ltlist)))
' l" E% i, {3 j# q6 A% T$ c) A - )$ a, y) l; H6 [: ~/ ]
- )& V1 _# C/ m6 }. V2 R9 Q
- )
% d4 v v! J1 F - (setq ltnmlst (cons "BYBLOCK" ltnmlst))
& ?5 {5 R9 d7 P# h: \/ K* Y& x - (setq mdashlist (cons nil mdashlist))' ^- A! z- B) ^
- (setq ltnmlst (cons "BYLAYER" ltnmlst)) B7 ]! D& Z. y' O
- (setq mdashlist (cons nil mdashlist))
3 w5 x& M$ P8 C - )8 e6 Q$ ]( w& a
- ;;
^1 \: y8 E! Z9 J) O' L - ;; Get all the group code 49 values for a linetype and put them in a list8 l+ X" |# c& i! }+ i0 a0 p
- ;; (pen-up, pen-down info)
! \+ W0 z5 r5 T% s0 A* i+ Z5 y - ;;# M7 M* |& z5 L) _
- (defun add-mdash (ltlist1 / dashlist assoclist dashsize)% G. q0 a$ ^5 I5 I( l3 |/ `3 a( N
- (setq dashlist nil)
3 V- H1 v, {% y; O$ g - (while (setq assoclist (car ltlist1))
: @( \% d' A8 N: M/ Z - (if (= (car assoclist) 49)
# U3 b- M% K/ P) o - (progn
3 W1 i1 j; m% U - (setq dashsize (cdr assoclist))
2 L8 E$ u. H9 c+ m" C& d - (setq dashlist (cons dashsize dashlist)). _0 K: |# g) t# g
- )" o& Q* M# i- Y9 s- G4 |
- )3 ]2 Y% s n) r; P
- (setq ltlist1 (cdr ltlist1))
) Q* D5 N3 K7 s" S/ } - )9 d, z" P p$ H# l
- (setq dashlist (reverse dashlist))* }: H- R" J) Z) N
- )9 A8 `3 B+ _/ }8 Z$ c& _+ P
- ;;
2 h2 J9 I" B; U2 c. {& U+ f - ;; Color a tile, draw linetype, and draw a border around it
6 D8 o |7 @1 M! s1 ?# A+ P - ;;" F9 z2 g; L4 Q/ t; u7 l
- (defun col_tile (tile color patlist / x y)% e2 A+ S9 H h$ g
- (setq x (dimx_tile tile))' }2 z- i- C7 W2 e \
- (setq y (dimy_tile tile))
5 [) D$ r" v3 e. G/ L - (start_image tile)
. ^$ h i2 g2 C( b* x# T* Z4 O - (fill_image 0 0 x y color)
c6 u+ s' b# \9 m: Z - (if (= color 7)0 d5 I& k: [# F0 h
- (progn
# [: j( D d. ?8 M2 n1 p - (if patlist (drawpattern x (/ y 2) patlist 0))3 ^" M: ^6 E" G; V+ L- o+ f
- (tile_rect 0 0 x y 0)+ U! g! Y+ c1 ]" A# y. I
- ) W) s9 @9 v1 U& D# Q
- (progn
- D% M7 H' H, b1 I2 _" x5 c - (if patlist (drawpattern x (/ y 2) patlist 7))
" t& n3 u8 q( S! h - (tile_rect 0 0 x y 7)$ I K# U1 T8 @& w
- )) p2 N2 z' z0 j* I
- )
% D7 Q" z: s# K - (end_image)2 J8 y" l3 D) k/ ~) e
- )- t# P$ k: C% P# o/ b. y
- ;;3 |: w# y" i7 A2 O1 _) o( X) S7 x
- ;; Draw a border around a tile0 K: i# ^' a, G0 p$ S$ o
- ;;+ _' S2 b. W6 j
- (defun tile_rect (x1 y1 x2 y2 color)/ a! y" x; j; V& A+ u0 l! ]
- (setq x2 (- x2 1))
6 H0 u; v& v! i- q8 q4 F - (setq y2 (- y2 1))+ N# ] l0 i( D# g3 I4 L
- (vector_image x1 y1 x2 y1 color); B9 Q* i% Q3 n1 g; a1 X
- (vector_image x2 y1 x2 y2 color)6 C$ c6 g5 c4 G8 o5 k% B2 Z+ ]1 W
- (vector_image x2 y2 x1 y2 color)& `1 K! v! f4 h; O' p
- (vector_image x1 y2 x1 y1 color)
( I w' a2 s- Y& D, L. E - )9 N3 E( z7 [! K% I+ s7 G9 n3 F7 j
- ;;
0 M! F" A* @! D/ U) G - ;; Draw the linetype pattern in a tile. Boxlength is the length of the image) z3 I1 g& Q/ Z- Q4 L
- ;; tile, y2 is the midpoint of the height of the image tile, pattern is a/ s9 |% X' S. u% O- j
- ;; list of numbers that define the linetype, and color is the color of the
8 o: B2 ]5 k+ E" P - ;; tile.5 |# |- O8 ?7 `- \% j1 \0 n- c
- ;;
) \, x6 q% ]# a/ _ - (defun drawpattern (boxlength y2 pattern color / x1 x2' i# [; P, {3 K0 M
- patlist dash)
: n7 r2 Y1 b+ ^5 w6 L4 } - (setq x1 0 x2 0)
( l" C/ `; ~1 ^; I9 Y - (setq patlist pattern)* |3 y/ a9 b) I/ [3 Z
- (setq fx 30)
- L+ n% P, v! g1 z z! s# Y - (if (= patlist "CONT")
$ H+ T% t) k1 c+ x - (progn
4 y3 [- t* ~+ P" e: k - (setq dash boxlength)
' B8 e/ T1 S- b y) ^! r - (vi)" }$ {- B8 @ y
- (setq x1 boxlength)
$ c7 [5 v9 A6 u - )
5 X! H2 h C) D# L( b - (foreach dash patlist6 V) W0 g2 S/ l4 l4 D
- (if (> (abs dash) 2.5)* B% s& W: k2 `$ }
- (setq fx 2)$ R7 X7 i; O& i& T% R
- )
% k, x9 `- _+ V" z/ t" x - )
/ R; {. A9 f$ U* {6 U9 K* Z - )1 Z `; u! A, A
- (while (< x1 boxlength)% _1 b8 A: n0 z/ F! [1 o
- (if (setq dash (car patlist))
! c& X& c7 @0 f2 v: j( R* I: a - (progn
1 M. x* f' x: G; u - (setq dash (fix (* fx dash)))
+ C& U. e0 |; b } F- i& _9 }3 i% c1 V - (cond
$ Q7 H* n( z& K1 ^ - ((= dash 0)
/ A1 H. D% w! z+ R9 K% W4 e - (setq dash 1)0 h2 q/ W0 R% J: g: r' D9 V1 G+ @
- (vi)! y" C s2 H; B! |6 ^, z
- ) a* n% a& B4 n- a1 f
- ((> dash 0)
( d) C8 k2 Z, }7 X% p5 q: f0 N- @ - (vi)$ @( ~2 g; l4 n" f4 J
- )
$ \5 b+ g7 h7 n - (T
; W3 R. J$ T9 a. p$ b* k - (if (< (abs dash) 2) (setq dash 2))
- m" r& D4 K/ `" a0 K }. u - (setq x2 (+ x2 (abs dash))). b6 u+ `! }' }7 G: v0 O* z1 D c
- )
( Y1 ]$ q {( y, l5 A4 E - )( h- z- S" K: f& s2 G0 ?$ T
- (setq patlist (cdr patlist))
- x1 Y% \) Y! H - (setq x1 x2)
5 p5 R$ |9 _# ~% C0 q5 H4 M - )5 o) @5 x) t- E# M* }6 ^
- (setq patlist pattern)
( [3 Q, t3 @; ?& K. \2 f; B - )
. p+ x& C$ t( C' B8 F# f - )
k' I. o6 f" E o) Y7 V8 F2 Z, O - )
0 m x5 J! k. ? - ;;
1 ]# T) r$ L$ f+ v% Q - ;; Draw a dash or dot in image tile/ Q; s* C: }. R# q* s/ s; k
- ;;) Z7 J) v. B8 @" A3 s
- (defun vi ()
# E% n6 V3 M) d. I2 o- [ - (setq x2 (+ x2 dash))# P3 z( W* R9 e* \
- (vector_image x1 y2 x2 y2 color)
6 o( n( m: l6 g2 M - ); A. _7 o3 M: {0 z% }1 G
- 3 ~8 ] h; E- x
- ;; This function takes a selection and returns a list of the color,
& G2 f! T2 ^ z# T# w" x; ^ - ;; linetype, layer, linetype scale, and thickness properties that5 U3 T) U4 E- }/ C1 L0 L3 B
- ;; are common to every entities in the selection set - (color' k+ [; _+ K4 ? }% i
- ;; linetype layer thickness). If all entities do not share the same
# {, r/ h U: K/ e( f0 z3 N# I2 o - ;; property value it returns "Varies" in place of the property' @( ?6 E3 a+ y5 o; ^
- ;; value. i.e. ("BYLAYER" "DASHED" "Varies" 0)/ ^8 V0 Q7 @ D0 j* l
- ;; The last item in the return list is an integer flag for the Y/ E) q, O# o, @4 a& f) D6 R
- ;; homegenity of the selection-set object types.( Y3 ^1 |: B/ |
- ;; 1 = All polylines0 f) T% k: Y1 v7 f& Y
- ;; 2 = All text or mtext or attdef, or a combination of the three9 l) ]6 i5 s$ \. U
- ;; -1 = Any other mix of objects
" `/ R# D& C8 D, Y. ]1 M - ' ~" t) G1 ~4 o: g
- (defun getprops (selset / sslen elist color ltype layer ltscale thickness
$ w- _- D4 q( S( P - width elevation height go ctr
; u0 F& S1 A a- W2 } - eflag 0 c3 C& s U$ p( p
- etype temp
+ i( z7 x# m5 Q5 I: H8 U& ^ - txt_ss ;;;;rk 11:24 AM 1/30/973 a( E+ D' h( b9 X, A Z
- tmp ) e6 r3 d; q* \9 B4 C6 q$ s/ A+ u
- poly_ss
% D+ M z1 D: g5 _! s - style
$ H; r' S$ Z5 p3 p - )
8 j* V( m$ d2 R6 `/ p3 O8 P
* g8 y: `: k" A: Y# t4 e& _6 `- 6 ?# m3 i8 m/ ^0 ^
- (setq sslen (sslength selset)+ q- l* o1 ^! H6 h& m! a
- elist (entget (ssname selset 0))0 B2 U3 ^: z7 K5 v- z2 w+ ?' ?
- etype (strcase (cdr (assoc 0 elist)))
+ i; m" K& V7 T% q6 A - color (cdr (assoc 62 elist))$ W' r- H* _4 U7 ^- B" \
- ltype (cdr (assoc 6 elist))
% i, u5 \1 a# C+ r; ~1 c - layer (cdr (assoc 8 elist))
) m3 g4 c! Z5 | - thickness (cdr (assoc 39 elist))
% N, ~6 F. b; u5 L7 y6 W - ltscale (cdr (assoc 48 elist))
; S8 H6 e( c; P - );setq7 f6 ]/ [7 J% p; l. r( \& `, t' K* m
7 ?7 n' _% k' W7 s4 @- (if (not color) (setq color 256))
4 q/ O) B- h3 d; i# u - (if (not ltype) (setq ltype "BYLAYER"))( ?0 z3 m' i' Q+ l) H! j* T5 y: ~
- (if (not thickness) (setq thickness 0))/ U9 j6 K. T# s1 c- ]3 Q4 E
- (if (not ltscale) (setq ltscale 1))' A7 u: b( [% O
- 0 ]7 q; Q. x, H0 l0 D2 S# G8 D: F
- (if (not width) (setq width ""))
3 z- {5 a8 ~. E! @ - (if (not elevation) (setq elevation ""))
+ t4 u8 Q+ \# Y* v5 f' Q - (if (not height) (setq height ""))
5 L! q- x4 _4 @" h9 C6 V
/ S8 H" P1 T1 x- (setq go T
% A5 h8 F7 _9 T6 ~' @& a - chk-col T
* ^) m2 Y( t+ R4 k: l - chk-lt T * z& h$ R5 }3 s# \# F, s* c+ K6 M2 A8 t s
- chk-lay T
: V) y4 |9 W3 e3 s, x/ x/ J' K - chk-lts T
& { s2 W2 M( P: {% N - chk-th T 8 D/ G3 i9 G1 l/ k
- ctr 0. G2 ?! q6 q7 Z7 m: ~' P1 I
- );setq7 w9 L- I/ ?0 t
1 K( C1 h. P$ W' \0 o% ?3 @0 H- ;; Page through the selection set. When a property4 [6 Q; ]4 V( l$ J; p; L
- ;; does not match, stop checking for that property.
5 w# r/ [, [ ?; X: C' \ - ;; When the selection set is not homogenous, stop checking.$ W: k+ F0 D# |* V) \0 V
- ;; If all properties vary and the set is not a type 1
. K |- Y U1 W8 z5 [+ @* w - ;; (polyline) or type 2 (attdef/text/mtext) set, stop paging.
+ s$ y! G5 g2 ~, ]: D) a) C# f - % ]- c7 q/ a5 M8 d# y% `
- ;Lets set the eflag so we know if the selection set includes any " V/ e5 b/ a: I! j
- ;combination of polylines, lwpolylines, text, mtext or attdefs.* z# d+ P+ E6 r+ b. L: t
/ I9 Z4 o) \4 D9 \$ x! B* ~- ;watch out for 3dpolyline and 3dmeshes here! @rk 10:17 AM 1/30/971 ]+ v5 P2 }& Z/ {2 y3 i; M
- (setq eflag 0)* _ j; _/ V5 o# b8 h
- (if (setq poly_ss ' U# R* I3 q: U, d o( p! _1 u
- (ssget "P" (list '(0 . "*POLYLINE") i: u; d& B& Z+ r' j7 F
- '(-4 . "<AND")
7 p$ a, f- X" }5 W; t4 X - '(-4 . "<NOT") '(-4 . "&=") '(70 . 8) '(-4 . "NOT>"): N2 \ W$ ~) Z
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 16) '(-4 . "NOT>")3 _- p; v I* a" K4 w
- '(-4 . "<NOT") '(-4 . "&=") '(70 . 64) '(-4 . "NOT>")- m. F6 {; L- E( I0 N7 a
- '(-4 . "AND>")
+ t- `+ y# {1 ~$ j - );list, b2 S, s3 B; r$ w. [) Q
- );ssget get 2d polylines (legacy and lw)
' r9 q& T% V8 v) R# I- m - );setq: J) G) W8 X3 e- \& a3 c
- (progn
' r ?3 ~6 x, y+ z$ S; T - (setq eflag (+ eflag 1))
% L6 |2 v* J( O* ^4 d v4 | -
2 g t) R3 c& z' M3 ]( ]- M) o' z - (setq tmp (entget (ssname poly_ss 0)));setq
0 X4 _- i7 p# Q d0 H - ! r e4 G: I- N* d5 G4 f
- (if (equal "POLYLINE" (cdr (assoc 0 tmp)))
# ~ K1 e% K9 [0 i/ D - (setq elevation (last (cdr (assoc 10 tmp))))9 L+ @. D- Z! R$ I
- (setq elevation (cdr (assoc 38 tmp)))# J) m }# q6 g0 f
- );if; r, ^/ H$ ]' D( [+ y% M
- (if (not elevation)8 R+ e# A V3 {+ t/ u' [
- (setq elevation 0.0);setq4 t# H7 y5 g. N0 |' j. j
- );if/ V s# E' x+ Q% Q7 F
) X+ ^% \8 @7 q6 _- {* i- (setq tmp (ssget "P" ' d9 F) F w* {) H% P7 ?
- (list
/ ?. _" L5 R* q# N2 ^ - '(-4 . "<OR")
$ ?" ^: R. L8 }3 B - '(-4 . "<AND") & b0 z2 @( {; [) _+ t
- '(0 . "LWPOLYLINE")
* _ T- z; i2 @: b/ \9 n - (cons 38 elevation)
; J8 I* S2 X* O, U- @ - '(-4 . "AND>")
4 S/ \# a& J# t3 P& t - '(-4 . "<AND")
1 s3 T( ]( o# P' L% f9 l/ j - '(0 . "POLYLINE")
6 V# W$ a1 F: V$ _. e' G8 `( D' a - '(-4 . "*,*,=") 3 {* \, m) z4 Q! y
- (cons 10 (list 1.0 1.0 elevation))! C* L* a& \7 J V, ]3 e5 U
- '(-4 . "AND>")
' X% j, a! h1 {& \; \ - '(-4 . "OR>"): f! K1 \0 [8 |! [# Z
- );list, `6 W+ ]& b' g7 Z# f* J2 @* A
- );ssget4 S" s8 x$ q: y3 F' [4 U
- );setq
( ` ]) @( K7 L5 P5 R% H - 8 v X5 ^$ C0 f
- (if (and tmp
' K/ E5 p" `; @5 {% s - (equal (sslength tmp) (sslength poly_ss))
$ n: p, g5 Q% x5 y" ?8 U6 o - );and
3 P8 j" M: s+ P; v. i - (setq elevation (ai_rtos elevation));setq( I/ w Q8 Y- p1 `$ P
- (setq elevation "")
5 Q ~+ F! k0 D1 a9 w- `: f# I9 { - );if$ H" b0 C7 I4 M# y) \$ K2 I
- " z# J7 [+ L- X& Z' d
- (setq width (pl_width_getter poly_ss));setq; P: a; w9 m0 U1 G1 C2 ~' P
- \) @2 s+ [, o9 ]) M
- );progn then 2d polylines and/or lwpolylines are in the HHHHHOUSE!& s6 l7 x$ \) E1 p: e1 S6 M
- );if1 H) i9 u/ v0 P4 e% A0 s
- (command "_.select" selset "")' D$ W- Q7 |1 O: W0 L9 S6 t
-
2 f r+ {' H; _: Z8 Y' H% K - (if (setq txt_ss
! ]6 s7 m( [% T - (ssget "P" '((-4 . "<OR") (0 . "TEXT") (0 . "MTEXT") 4 `! p; Y' P3 i4 C: q- H- @" f" a5 I
- (0 . "ATTDEF") (-4 . "OR>"))" }- t2 u" u4 V2 }2 d+ L+ m. f
- )
7 ?" W/ i7 F: L q% B - );setq4 y3 w! c6 |1 p
- (progn4 f+ V& S: O' l% z& q7 V/ }
- (setq eflag (+ eflag 2))
+ @- Y( l6 E' Z/ b7 X7 v) U - (setq height (cdr (assoc 40 (entget (ssname txt_ss 0))))
6 p6 _( Y8 y# k - tmp (ssget "P" (list (cons 40 height))) % z0 C- y( ]" k8 q7 N/ F
- );setq 1 `8 W% b4 u! v( J* N7 T! `
- (if (and tmp1 ?1 o" ?1 m! i: \
- (equal (sslength txt_ss) (sslength tmp)) ; Y n I U2 X8 O
- );and9 m: k/ l. Q8 `! q* o+ [& ~
- (setq height (ai_rtos height));setq ;@rk need to translate from float 3 U' S# w5 n/ U7 @9 Q$ E# ]
- ;to string and back again easily
& C' i0 R: q3 ]& W* h4 C - (setq height "");setq else the height varies ; a! x% b/ N2 @8 n# _8 n2 ? _. n
- );if$ ?4 B7 v9 B9 w/ O1 f- J6 u
- (command "_.select" txt_ss "") - K0 C6 F" e, m d4 ^
- (setq style (cdr (assoc 7 (entget (ssname txt_ss 0))))0 v# t h; D3 R2 _: |) y
- tmp (ssget "P" (list (cons 7 style))) $ D7 X, z/ n, t
- );setq : q# L. J5 v# Y7 N
- (if (not (and tmp
6 V/ L( S9 X8 E - (equal (sslength txt_ss) (sslength tmp))
; f1 u% n) ?& w" S3 K. {0 [" J9 F - );and
$ ^: {( G. M) C - );not
W, u- H5 w, Z. Q4 _# g6 k& E2 n( _ - (setq style "");setq then the style varies . J# v1 w: I5 B- s5 l# R
- );if
% v7 q6 K+ {% Y' E' p - );progn the text type objects are in the selection set; m3 q& d0 q+ z/ R/ z: S# p5 V
- );if1 y/ E! e( V7 h
- (command "_.select" selset "")/ ^0 e7 s/ F' b1 c
- 3 h/ `% g1 v3 u( \- n
- (while (and (> sslen ctr)
6 J6 ^. F7 I! |8 K - go' c) S4 }6 ?9 m6 z- V6 ]
- );and% I+ _3 q: ?' w# k' F
- (setq elist (entget (setq en (ssname selset ctr))))3 f6 ^2 Q: u0 Q# t* P) m5 d
- 1 ^( h# ^; n# X& B& I* U! w3 {
- (if chk-col (match-col))% E5 i0 i9 b: D& w$ v0 [
- (if chk-lt (match-lt))
% h& F: O }) w% v4 A. k9 O6 d - (if chk-lay (match-lay))( v) i0 p9 k1 [3 V* O' v+ x+ D
- (if chk-lts (match-lts))
3 J# W# x6 c# o; o* ~! I - (if chk-th (match-th))! V5 C: {) O! y& e4 q' t
0 Y& A+ ~3 K4 {. M! g! b- ;(if chk-etype (match-etype)); g" I$ i; z% k0 z7 f( v7 s
- " [/ a' U4 ^7 s6 u1 [7 o
- (setq ctr (1+ ctr))
6 G0 `3 ]4 X. \$ Z2 S0 [ - (if (and (not chk-col)7 p6 F4 [% \+ z) ?
- (not chk-lt)5 |. d5 d. o' g- ^: h, L- B
- (not chk-lay)
1 n @# @* Y5 b) v - (not chk-lts): B- y% Y8 w1 } d4 j: a4 [# z
- (not chk-th)( f( v# N( y5 F
- ;(not chk-etype)
& \3 h* p( z0 C4 M - );and( h* e6 l& r$ H8 y/ E8 P5 V
- (setq go nil)
- r" w- J) g" o# B - );if, t; L9 ?6 F+ J2 k
- );while( v; f2 P, A6 m
- % V% }- y( {: J& m) A
- (list color ltype layer thickness ltscale
, i k2 J. l& H) i9 @$ F0 }' i! F - width elevation height eflag
! K+ [: ?: p K9 }$ |1 r - style poly_ss txt_ss
: {4 k3 c, B0 V - )$ n2 `2 N! H2 M; S( v0 ~
- );defun getprops5 ?5 W( J7 I5 ], ~8 s
6 e, Z9 Q, W$ W2 G8 S- ; This is a speedy little routine to tell whether the polylines in
, x& H, v+ s' `1 w- l - ;the selection set argument are of varying width or a constant value.
( E* }! X- E, F- k+ D; T* x6 { - ;Looping through the vertex's has to be done for old polylines when
1 g/ y* y7 O% s0 t1 [9 g8 n. V! E' C - ;the polyline header has width values of 0.0. Basically, in this case,
6 X9 T7 p5 U+ Z" [+ O - ;information in the polyline entity header is abmiguous. Width values
) r( R. e; Q( k3 _* x. K% H4 p - ;of 0.0 in the header entity could mean the polyline has a constant , W' ~2 \6 `" i/ l" N* U
- ;width of 0.0 or it could mean that the polyline has vertex's of varying
! Z# F* A$ `5 H# R1 d* [* t: x - ;width.3 e; F7 Q! s8 V5 J
- ;
# c# U' R7 k, a D - ; It's all in wrist. Err a.., I mean it's all in the 'if'8 c: V0 h5 c* t* a" W+ h* Y4 q
- ;;$ p% ]& f1 E/ ]0 h. g8 L
- (defun pl_width_getter ( ss / ss2 ss3 n na e1 width width_a width_b flag flag2)
& J) B( ~. G8 r) D8 a, C. `
& I4 Q1 w o1 y8 ~- (if ss
) D( w% g/ G! X( n, O& t - (command "_.select" ss "")
4 o) ^- t4 X: ?; U' A7 y - );if
5 c# Z1 A! _+ D. ~, V6 `, ~9 F - (setq width ""; j v' G. {$ q9 q7 ]( E9 K2 @
- flag nil& L$ U" ~) ?) g2 t4 @4 Z
- flag2 nil' g4 J5 v( P- M# B8 \6 D; }. w
- );setq; h7 j9 d7 P+ ^; K* Q# I$ e
- (if (not 4 k2 m8 m1 E' _0 n
- (and ss: W& [; J* \+ P* ^2 q
- (setq ss2 (ssget "p" '((0 . "LWPOLYLINE"))));setq
1 {4 B( I, E5 p/ c }3 F8 d - (setq na (ssname ss2 0), ?" m+ m" J6 o8 s; @
- width (cdr (assoc 43 (entget na)))
, i1 }4 ]8 r) \8 F- ?) t8 W - );setq+ r M- _1 Z# g
- (setq ss3 (ssget "p" (list '(0 . "LWPOLYLINE")- }# c& N& x1 X/ H n
- (cons 43 width)9 A% s, P- t3 J" \9 e: Q
- );list
1 A# r! @# z% h' E - );ssget
! j. o* H7 n' c+ c. M% ?+ O5 w* q - );setq
! m6 y% D5 `; g" ]9 i. e* z - (setq flag T) & F0 b# {* f( P- }0 V. l
- (equal (sslength ss2) (sslength ss3))
; P, I' |1 N& x: F+ {3 q& d+ l - );and
7 S( R/ _7 j0 L+ O - );not
( a6 _7 [0 Q: I - (progn
% S0 b8 t2 L( n! l0 f - (if flag
h9 T! h0 @: [ - (setq width nil) 7 I: b' k! Z P) _4 ]% `; B0 p
- );if
9 D" f! }+ y% o' K. R - );progn
$ F2 b1 J) d. D2 n - );if . y6 U U5 N2 Y
- 5 f& O1 X- R* u Z# A3 R# U
- (if (not
! t0 A/ m0 C E! W% K - (and . P, A0 H& C2 j7 @
- ss9 ]0 d7 v! t1 R* n/ y
- (progn (command "_.select" ss "") ! z% x$ Y. J* z q y
- (setq ss2 (ssget "p" '((0 . "POLYLINE"))));setq% F1 T9 n( O4 l) m: a8 _0 d6 [
- )
7 Z7 ]& A: e& r" t - (setq na (ssname ss2 0)
% {" o7 l- x& t - e1 (entget na); h* m4 m! n9 _
- width_a (cdr (assoc 40 e1))
# s# `; f8 B6 q* G - width_b (cdr (assoc 41 e1)) R3 M8 c. `3 v: ~" o. Q' C
- );setq
' \( I# w6 l, @8 D, b - (equal width_a width_b)
X6 @: ?' J$ O! N) z - (setq ss3 (ssget "p" (list '(0 . "POLYLINE")
" ~/ |( M- |2 a7 y - (cons 40 width_a)
2 z) H; G( A9 @: O4 ? - (cons 41 width_b)7 A! b6 W* W- A
- );list
` V o- @5 b - );ssget
/ T( v e- s8 q5 Z" }, q& C( Q - );setq3 v# ]1 L% n& e
- (setq flag2 T)" G3 _! A! Q3 y4 [+ @5 K! o. m3 c
- (equal (sslength ss2) (sslength ss3)); Y0 c0 l& l; K/ c6 s
- );and 3 U. r- d" _1 h& X
- );not 6 q$ r+ U. [* i' L2 C9 l" P
- (progn
9 K- x2 S* L/ N# |* h - (if flag28 |7 X1 ?9 Q" K
- (setq width nil);setq
$ P# c! s' @4 e1 `& Y - );if6 a$ z( C' x+ ^
- );progn then
- R1 b; q, ]' L& Y - (progn- I$ m9 G) b& @3 v* ^0 J
- (if (or (equal width ""); o7 I' y" s8 e8 X0 ?) g: f
- (not flag)
0 v3 v5 O2 k' k) W8 ~, V - );or& U7 z/ U$ T }4 ~( ?% v4 r
- (setq width width_a)3 w" x0 y, i) c) @% }2 h
- (progn/ Q9 [% A7 h: `+ y; Z
- (if (not (equal width width_a))% J0 x( ]& m7 g" u
- (setq width "")
% |3 _( o9 d5 `3 Z2 G6 j - );if
6 B# y9 s5 a. f0 z - );progn5 D6 ^) q. S8 l
- );if
3 c! _. _& t3 y1 P7 m; Y - );progn
) p- ^9 a2 a j" q1 a9 b& T% P - );if
' i* {! M( _# f. o% i6 E; ` - ! _& O* [* \7 } s
- $ m$ A$ h. G# w' H9 x
- ;now for the special handling for old polylines5 o# l2 r' W" J6 r% s
- (if (and width 1 b2 ?4 ?+ R+ z6 _9 w
- (equal width 0.0)
9 H& z' T5 Q- x# e/ Y; G' n - flag2
* K; |6 {9 }7 R; E7 H - );and ( T# d" k. {; ^3 J0 G. a, w3 k
- (progn) l' N* |- l; ?/ V
-
- J O+ O) o4 h) ?- q$ k - (setq n 0);setq
, [. y' T1 K2 `0 v - (while (and (equal width 0.0)
1 B9 k, _. O) e% N - (< n (sslength ss3)) t0 k, a8 w4 @4 {
- );and
/ }2 b L# e% G0 I/ A! k - (setq flag nil
- e: S" l7 M4 b& L5 ^% j- }4 a - na (ssname ss3 n)1 M; {9 c, c" m. {) e @
- na (entnext na)* t0 {# n4 \+ O
- e1 (entget na)* C+ P! U J6 F, b# C3 ~5 l! G- [
- );setq7 E& I" h# ~9 Z/ [
- (while (not flag)# N+ u' ]2 ?- M' ^8 e/ [
- (if (or (equal (cdr (assoc 0 e1)) "SEQEND")
4 u2 L6 H6 [$ V7 P' O K% c - (not (equal (cdr (assoc 40 e1)) 0.0))
& r! u6 i$ g# q, O0 F - (not (equal (cdr (assoc 41 e1)) 0.0)) x/ ?/ f1 o& ]; D0 t! t& o. ?( c1 T
- );or* S) H1 E- s! N" E5 ]
- (progn& c; }3 B1 Q+ k
- (setq flag T);
+ t/ C3 K/ K% v - (if (not (equal (cdr (assoc 0 e1)) "SEQEND"))9 m5 {( B G8 m' a1 R& i3 B
- (setq width nil) " c& X5 |# r( h8 S" j9 r
- );if3 l6 G* s. k/ C
- );progn then jump out of the loop1 o4 u/ k- @! s) \& T
- (setq na (entnext na)$ [5 n0 X* H# [
- e1 (entget na)
+ H; V, X* }" z' j - );setq 9 L' f1 l% M. P3 g
- );if
/ G$ ^. T. n/ T1 G - );while; E; C1 l; [8 I5 g9 A0 Q# N4 S# m) ]
- (setq n (+ n 1));setq T# r9 k! k& e6 l) G
- );while 6 U4 L. z& l! ~5 r7 o8 I% Y
- 9 s) Q3 T/ }8 {6 W9 l
- );progn then it's a legacy
( {! Y4 l9 `% p2 a; I - );if ;legacy polylines that may have varying widths
* O3 W+ y7 b& q$ d- _& |2 \
/ ^+ m$ Y/ }9 M- (if (not width)
! A6 o. k0 S, [7 Z6 I, x - (setq width "");setq0 j" `$ F$ {, s
- );if
, z. P! A6 w/ \' w, k$ V# I( R- C - (if (not (equal 'STR (type width)))
* q/ \' e+ g7 |# n& _: O+ C; A9 a - (setq width (ai_rtos width));setq
6 ?! `& j1 `' ~8 n0 ^9 t3 S - );if
o8 a( z/ d9 G - 3 u$ J$ z' y8 J( R
- width * w$ r6 P _) c8 D: V3 s g
- );defun pl_width_getter, B/ K* a0 h' h8 x
# Q/ F- b6 O) I- ! E% l+ z1 X& `) d, q
- (defun match-col (/ ncolor)
* {5 @2 j1 v8 u( r/ e p$ o% l - (setq ncolor (cdr (assoc 62 elist)))
2 K, l1 P9 ^ ^# v/ }; ? - (if (not ncolor) (setq ncolor 256))
: T1 s# }& C, E4 Z& w' M - (if (/= color ncolor)' @- h2 B4 n4 G% `, ]1 }5 ~6 K. W
- (progn
: g6 Z: ^- M' d3 Q - (setq chk-col nil)
8 ^' y% Z- Y6 Y3 T5 F - (setq color nil)
7 E) g: e+ Q7 M. P$ |1 o) l3 V% v+ T - )* F+ d4 B6 D Z4 d3 h) @3 h3 y
- )
) V) h- @0 P Z3 b% X0 U, J - )4 Z* ~* |' m7 C- U* s
, ^+ |8 @4 I9 f8 D; f+ Q. w/ f( G- (defun match-lt (/ nltype)
! a' s: B/ g, y6 k* p2 E - (setq nltype (cdr (assoc 6 elist)))+ B5 H- K) U$ h! H! M- ?0 N
- (if (not nltype) (setq nltype "BYLAYER"))( ]) u9 B7 s- _1 f; ~) \/ @
- (if (/= ltype nltype)
7 D$ E( i* B! @/ A k0 b* u - (progn
7 z) L* A8 q# H) w4 k" [$ j1 Y - (setq chk-lt nil)5 M! u4 C2 H/ y: d. t8 t: P
- (setq ltype ;|MSG0|;"Varies")' ], L p; u, \+ X9 n# i5 f R
- )
7 x* O, U' }8 F - )
0 p3 @! l) U) `6 n: Z - )5 P4 M5 E6 c* n7 Q0 ^+ L
- ! M2 o$ X5 b5 m3 q1 o4 {' J' ` u
- (defun match-lay (/ nlayer)
! `$ W T$ {7 F9 }5 u - (setq nlayer (cdr (assoc 8 elist)))
* P J, x/ X% a" E8 B, Z. H8 L0 _/ E - (if (/= layer nlayer)$ T5 s. x* p0 f+ Q5 J s- ^
- (progn+ v L: [1 Q. X0 I$ B' q; k
- (setq chk-lay nil)
! X F5 _* B2 R- }& v8 I# g - (setq layer ;|MSG0|;"Varies")2 n- G) b. I- O& x2 R6 m6 b
- )
4 C6 I3 i% X0 ]$ M - ). ^$ c3 {9 S5 t9 T# T! q1 i
- )
) r3 b& m; U9 |+ G, ?0 j4 W9 v - / E9 K' u! o0 |. J
- (defun match-th (/ nthickness)
2 v/ _# T" C2 L8 W5 V% c1 f# s0 W - (setq nthickness (cdr (assoc 39 elist)))) h" U$ P* Z" ~. {/ W+ ~
- (if (not nthickness) (setq nthickness 0))
, _) B4 f) f0 `4 V* ?5 ~* \# L( X/ F$ s - (if (/= thickness nthickness)
: T, j; F5 {+ z2 M - (progn- Z! S; O7 O; T& S* {; i
- (setq chk-th nil)& N2 k3 j' I' `7 k {8 x0 q
- (setq thickness ;|MSG0|;"Varies")
* b& I0 c8 ]' A - )6 j' k5 O9 a+ E
- )
1 c! S" H3 h1 {* M5 @- i; n - )0 s l6 {1 D( U6 I- W
0 h) s8 c* w3 i+ u$ l- (defun match-lts (/ nltscale)$ T6 M6 Z- }) I0 p0 F
- (setq nltscale (cdr (assoc 48 elist)))3 l9 L( N7 [0 \% {5 a+ y% D
- (if (not nltscale) (setq nltscale 1))' J( H+ p1 x! \1 J" `
- (if (/= ltscale nltscale)
0 p: ^# j: Z+ { - (progn
( g' `+ M5 U) d" Q9 { - (setq chk-lts nil)
1 [& Q! z/ F: |' ?' z$ {5 Y V - (setq ltscale ;|MSG0|;"Varies")) p4 m# R. I; d* x2 L, ~5 R
- )0 I8 q: u4 m% l' D- E/ K" {3 I; B- L
- )8 V# J( `/ ?# ]% W& J& ~0 [# M
- )" j+ A4 a- U% q
% x: W$ l2 y9 @4 v9 [$ L' E- ;;
" R# O, ?, o2 e* l+ ~# \' u0 I - ;; If an item is a member of the list, then return its index number, else% W7 d) c- x4 O$ \
- ;; return nil.+ U& [- F9 p% |) O8 b
- ;;% X" ^0 \- s7 }% G/ q3 l; H
- (defun getindex (item itemlist / m n)
, y/ e/ |$ S. s$ q( ~0 W" T - (setq n (length itemlist))' ^1 d' x6 R( U+ c
- (if (> (setq m (length (member item itemlist))) 0)0 o# g R# H6 n# }
- (- n m)2 s) K3 F0 e' Q6 u
- nil
5 J1 Z2 e h* g6 k/ M - )# y E% P2 @6 n1 H# u
- )
; O( x* s" R& P# c9 _: } - ;;
2 i% X2 e0 V" \0 R: Q - ;; This function is called if the linetype is set "BYLAYER". It finds the
" m+ ]1 t7 {2 s' }0 o, g- B - ;; ltype of the layer so it can be displayed beside the linetype button.
& g0 U1 \7 L( n4 [# Y - ;;
0 P3 L+ b% Y8 j% S - (defun bylayer_lt (/ layname layinfo ltype)( A8 m7 }* ~; Y
- (if lay-idx
: b+ _ V5 k H6 X, {1 e* K6 \ - (progn& q# C# P7 ?' b) Z1 p; k9 V
- (setq layname (nth lay-idx laynmlst))- f% Z2 X9 ]7 D5 x: J" z, u
- (setq layinfo (tblsearch "layer" layname))
6 |; E u/ H' b - (setq ltype (cdr (assoc 6 layinfo)))! w( y) l: i# Z" \8 G! K
- (strcat "BYLAYER" " (" ltype ")"). v9 m& S( t+ r5 a) O) O
- ). x. L& R9 B2 S: E6 h5 \
- "BYLAYER"
0 k/ l4 ~% n6 h$ k/ i1 T# F - )1 n# k% K& y4 J8 q
- )
6 d+ D8 d! t! \1 @2 T B: x - ;;
( ] m2 s0 U* A- M* h+ ^ - ;; This function is called if the color is set "BYLAYER". It finds the4 }: x! N8 C8 t& G, A$ b
- ;; color of the layer so it can be displayed beside the color button.4 `1 g4 B7 f% R9 V' c
- ;;
1 o, E$ P1 t9 U' {" C - (defun bylayer_col (/ layname layinfo color)7 a C5 l& u% ^% K4 k/ t
- (if lay-idx
- _) k( U& p* S% y - (progn
4 a) t" Q0 Q+ j9 D - (setq layname (nth lay-idx laynmlst))7 l) N3 x, V! g; T( y# ^
- (setq layinfo (tblsearch "layer" layname)), v& M# H" v: @9 M) J
- (setq color (abs (cdr (assoc 62 layinfo))))
$ y( ^9 q p5 M( o! o - (setq cn color)/ p$ O; y; o @6 L2 e0 N7 I
- (strcat "BYLAYER" " (" (colorname color) ")")
8 E3 W2 x# ?* \ - )( I. d+ t8 [. e4 P& f
- (progn
* Q' E/ p+ Y @5 B4 `; Z" E - (setq layname elayer)6 k7 R$ K0 p9 [
- (if (and (/= elayer "")& D* H" i. o! n( G! u
- (/= elayer "Varies")( i) F' c+ z% g3 M; ?
- );and) N8 Z! _6 L. h6 [9 ]) y+ X" y2 |6 K
- (progn- [0 X! t' A9 h0 X
- (setq layinfo (tblsearch "layer" elayer))( q( u! h7 d1 R# y$ Y
- (setq color (abs (cdr (assoc 62 layinfo))))2 {1 y( l. A L- s* F8 G: ~0 e
- (setq cn color)" f( B2 N4 }2 X& O
- (strcat "BYLAYER" " (" (colorname color) ")")% |% e- N7 l3 J1 l
- )- U, a2 J# m k
- (progn+ y9 g O3 Y& t) C2 S
- (setq cn 0)
n% W4 M& Y/ ?1 N( G - "BYLAYER"
! o+ c4 Z8 [. f, K) Y7 Y - )( C6 C" L: ~7 X# e# p* r0 v
- );if: [( a+ E- B0 d# r3 c) y
- );progn! T- G) t; P- f1 J' n% Y% s
- );if6 \' t& |# q# \& K7 d
- )6 u+ j. ?. C7 S q; C+ v# Z: a
- ;;9 a3 C; s: X2 w
- ;; If there is no error message, then close the dialogue
& B' ~5 q( j/ Y2 b' [5 ~ - ;;
2 ?) ~$ ]) N6 @* B2 m - ;; If there is an error message, then set focus to the tile% Q9 e5 p. @2 d: s) J/ R
- ;; that's associated with the error message.
5 C& T8 ?: S8 U2 t1 m8 l* D) }& m - ;;( v% x# r' s" {1 @7 V' E
- (defun test-ok ( / errtile)
. N; z/ X# Z& _# R2 z8 Z. m - (setq errtile (get_tile "error"))' c9 c& O$ G* K& s$ a+ K' S m
- (cond, Y) D; X6 s4 e6 P/ W6 P, g
- ( (= errtile "")
9 h( i. o$ A$ m - (done_dialog 1))
0 m' D2 T- g" S - ( (= errtile "Invalid thickness.")
3 k# P3 {! r3 k1 F1 U$ V1 h, S - (mode_tile "eb_thickness" 2))$ b* j2 J9 v) I- Q3 `, Q
- )
2 b5 t5 A8 d* z: L( e3 R& m R - )6 z1 T. o% ?0 {0 q# S: B
- ;;) j% A. s2 l8 Q3 W
- ;; OK in main dialogue.$ J, }% h- u1 N5 n
- ;;' @' Z' d$ p$ H1 g7 C0 l3 R8 @6 R
- (defun test-main-ok ( / flag)
( C$ i7 Q5 f: W2 y; o - (setq flag T)
# S+ [: [! p( D) | - (if (not (or (distof (get_tile "eb_thickness"))
% @+ b1 n& L5 \% u$ p/ E: f3 n - (= "" (get_tile "eb_thickness"))5 u6 m. O% @, b0 ]9 Z( ^* L( i
- );or
5 D5 ?0 P9 @, |' m - );not$ c' U8 c4 s+ ]1 S; s7 P; h
- (progn
2 H8 v! x# G( d( z" G- n - (set_tile "error" "Invalid thickness.")
" D; ~( Z; \5 t( @; | - (mode_tile "eb_thickness" 2)6 W; ? H9 r$ X; S
- (setq flag nil);setq
2 g5 I+ \2 [. i - );progn) C+ P% l5 R; P" s
- );if- _" r* W5 v3 p4 o6 W3 ]
- (if (and flag4 ^; w9 y; O) W& K. S
- (not (or (< 0 (distof (get_tile "eb_ltscale")))* |3 j2 G0 ^$ c9 R) I
- (= "" (get_tile "eb_ltscale"))6 B+ Y8 u/ Y) N) n
- );or
: R s3 I/ l" V% ~2 ] R; a" } - );not
. }" p" e- n. _: ?& n - );and & \$ v3 a; T' n& e* y/ ?
- (progn
7 \ z; j6 b9 j( v4 P8 j - (set_tile "error" "Invalid ltscale.")
2 I. ]4 c4 _4 t: |0 E9 e4 v0 L - (mode_tile "eb_ltscale" 2)3 Y4 U6 Y; I) T6 s; T5 w& T
- (setq flag nil);
/ D) R1 D7 k2 W3 a4 W& n - );progn then0 F: G' m3 x4 q
- );if* G: @% T4 d7 @8 y* u
- (if (and flag
* a- f2 c$ `/ c+ h' {: i$ z0 F8 b& G - ; Don't test the tile's value unless it's enabled. C/ z5 X6 @* D# I8 T
- ; We're not set up for the display-only value
2 o7 i. t8 f8 Z4 l$ k - ; of "" here in the error handler.. x) I! b3 I9 t/ t: p
- (= 2 (logand 2 eflag))( w; L% j9 H+ G+ g- T
- (not (or (< 0 (distof (get_tile "text_hgt")))7 A6 i# f' _, i& A5 {. Q2 }4 x# f
- (= "" (get_tile "text_hgt"))" e' h9 j! d6 ]* e8 |
- );or6 u2 ^8 ~" M+ y
- );not; n k* X3 T/ M, Z
- );and$ v/ s1 W2 x9 @7 W: \
- (progn
& g, V4 [, M9 |+ v$ z* m* Y/ S1 i9 ?" \5 p - (set_tile "error" "Invalid height."). }0 {6 O' d ?2 t1 ?& u
- (mode_tile "text_hgt" 2)) q/ t0 [* e2 Q3 o# ?( m
- (setq flag nil);
# i+ m) a2 i: f, S$ N - );progn then) T! m) {+ _ ]% e q
- );if
3 u1 y6 V3 q ^9 V8 [) r) Q - (if (and flag! |* R* c9 F+ t: Z- N
- (= 1 (logand 1 eflag))
# ^6 ~! T* t3 A' w9 l) o - (not (or (<= 0 (distof (get_tile "poly_wid")))
) {( f- v% l; N - (= "" (get_tile "poly_wid"))
# R5 Q. }3 y8 F1 n `; \+ D3 q2 \ - );or
# w( N: ]3 T$ S# n( d8 a: { - );not
" R# p( ]0 X; j$ g- P. [0 ` - );and
, K, V& P; L: d; M4 G - (progn* m& x- S1 F) u$ o
- (set_tile "error" "Invalid width.")
6 }) O6 Y1 g3 [ - (mode_tile "poly_wid" 2)7 p8 p, a) C4 Z9 p
- (setq flag nil), J) @$ i/ q: B
- );progn then1 c' k9 Z; m" o# d) h! d
- );if
) f/ c/ r& P% j- T( X9 H& F - (if (and flag. y1 Z, T5 K5 p& \! p5 s
- (= 1 (logand 1 eflag)). A2 i; u& m8 R% O [# W
- (not (or (distof (get_tile "poly_elev"))5 S2 |- F& d( ^7 \) h6 V8 F9 C
- (= "" (get_tile "poly_elev"))9 o9 i, D$ ~! L
- );or4 P6 D/ w5 F- \1 e+ P/ g2 L
- );not
; h& S3 G% P: S - );and) _1 A4 C' H, i% u
- (progn- U. j7 s* l% ]% F7 X
- (set_tile "error" "Invalid elevation.")
& c& Y' [3 A: z; _# N - (mode_tile "poly_elev" 2)
7 X. A8 u& u B) o; w4 t3 \ - (setq flag nil)
; i' k6 s0 v4 [, I! }, b6 E( v# b - );progn then! {- c% q9 `/ B3 l F0 f3 K" C/ G
- );if 2 _' R9 \: p6 @3 v4 u4 N1 T# c
- (if flag
4 `1 z7 M5 f1 R# {7 s - (done_dialog 1)
5 ]; D! C P6 U7 F+ j - );if
5 D/ l% [, ?3 q, [ - );defun test-main-ok0 U6 M& Y4 e. Y0 s# A+ _! [
- , f3 m" y0 W9 T- @6 w. x+ a( b& ~/ e
- ;;
/ X" P& j3 W1 ? {( U. y; P - ;; A color function used by getlayer.
: O) i7 h" o5 ~. X3 r' n0 S' e9 X - ;;$ @$ l& ^% y; g- S3 a2 Y- P
- (defun colorname (colnum)* I% }4 ]; c" j4 P
- (setq cn (abs colnum)), K8 p, u$ y0 V, e5 w. G
- (cond ((= cn 1) "red")
% `) q2 ~% l: Q, u5 S - ((= cn 2) "yellow")
+ U) Y- i* q/ y& p3 r) t - ((= cn 3) "green"): w- v( g7 @6 G7 u
- ((= cn 4) "cyan")( b0 K* ?& r0 a2 ^! g
- ((= cn 5) "blue")
( e4 }1 Y9 S* q8 `" [9 O% T - ((= cn 6) "magenta")
9 Q% f8 g- i1 v& u G/ Y+ | - ((= cn 7) "white")
8 }# @" v; c% k; g" |% d) j3 R - (T (itoa cn))
$ I* v# L2 Z6 S+ Z3 J! P7 {. f A - )+ W6 Z9 E. v! s+ }$ M9 @
- );defun
* u- C6 b) B. u; V& K6 ]5 P
7 {7 C' k9 X! W0 Z% C- ;;; Construct layer and ltype lists and initialize all1 N! h3 T, c/ g
- ;;; program variables:8 k% h0 `2 j/ A' Q7 s2 b
2 m! }1 ?" x, t8 U% i- ; (makelaylists) ; layer list - laynmlst+ T# ~7 ?3 H W3 @$ l5 \- I
- - G1 H# _" Q. |& A" N9 a& w
3 H% B( c) ]; H/ {- (makeltlists) ; linetype lists - ltnmlst, mdashlist
) x0 I4 M) v% Z; z. A! V$ O - 1 H) W. V5 d* o, ^0 ] M
- ;; Find the property values of the selection set. x3 J& ]' G& l [+ A1 s
- ;; (getprops ss) returns a list of properties from& X1 j0 ^% S% v
- ;; a selection set - (color ltype layer thickness HEGHT STYLE WIDTH).
- ?# t3 K' u B3 y: r. | - 8 @7 Q) `4 g: y V' l' f7 P0 _& j" n! E
- (setq proplist (getprops ss));@rk interesting things happen here* a. Z7 P& N8 D, C6 S {% G
0 C8 G4 |5 I7 `) }" }% u1 z" s- (setq) x; K2 S d; v9 [3 i3 Y* U, O
- ecolor (car proplist)
C1 a8 l# V {8 }6 I - eltype (nth 1 proplist)
4 [" i% c- Z# b9 ` - elayer (nth 2 proplist)' q2 ` \" K' {9 J ?4 j
- ethickness (nth 3 proplist)
& p% M* F3 w- e2 K( p$ z" ` - eltscale (nth 4 proplist)
6 ?2 V% f( ~0 ?+ w8 l! k - ewidth (nth 5 proplist)2 m& t, } m8 o& Z! `+ Y
- eelevation (nth 6 proplist)
% q3 {! O$ l6 G - eheight (nth 7 proplist)
7 N3 C$ `- G/ p - ;etype (nth 8 proplist);commented out and replaced with the line below. RK.
* ]9 X2 X5 r& w. k2 D% L% R6 ~' w - eflag (nth 8 proplist)
' O3 ^+ _# | k. o) |9 N - estyle (nth 9 proplist)
0 {" g# q$ Q% D8 @ - poly_ss (nth 10 proplist)
& C* r1 N. [/ c - txt_ss (nth 11 proplist)
& P# d& Q: e' ^4 k+ m6 l& g% N - );setq
8 Y" j* Z) J( o F6 O5 S4 q$ P! } - " `# f$ t2 D4 W! X) q ^: B& A; i
- ;; Find index of linetype, and layer lists
/ x% ~& _/ f4 L - (cond: V2 |" W. V. R( J& q6 ^0 Z
- ((= eltype "Varies") (setq lt-idx nil))0 e- C0 P% r2 d8 M) o" n
- ((= eltype "BYLAYER")6 e1 h$ r- h: ?, w3 v* l
- (setq lt-idx (getindex "BYLAYER" ltnmlst))); A2 p F8 ]7 ^/ j* f
- ((= eltype "BYBLOCK")6 j; B; d8 r9 I- ]; F% m
- (setq lt-idx (getindex "BYBLOCK" ltnmlst)))
9 C9 B- I ]2 @+ \4 B# V; K - (T (setq lt-idx (getindex eltype ltnmlst)))- R! ?+ H$ b; b' n( U9 m* s6 ~! P
- ) X2 x: X: ~! y
- (if (= elayer "Varies")% F3 c& M, V/ n7 [8 G
- (setq lay-idx nil)% ] `2 @5 t4 X# n: C( o: A) Q
- (setq lay-idx (getindex elayer laynmlst))
; Y& G! m* v2 y$ q: {4 M6 ] - );if4 Y' Q+ ?( a: ?7 D9 [
- (if (= ethickness "")
7 S- p/ `+ _1 J* i, G& t3 {& h9 G - (setq ethickness nil)
* F" d. X" x1 N8 g# Q9 O - );if
( G5 Z7 [) d5 ?: W: \$ ? - (if (= eltscale "")2 {9 f# p8 z; m, q" [
- (setq eltscale nil)7 v' |! C- x1 }+ C" M! {/ _
- );if" B' Q0 z% u! i* x% f2 I/ m
- & t, W! D, Q" G6 q9 `/ M% r1 p
- );defun ddchprop2_init ; end (ddchprop2_init)
& m& e! b' J4 v- }
* B, y: H9 b7 @& g+ |- ;;; (ddchprop2_select) {0 B7 t& w s6 d" u
- ;;;& n+ ]/ N2 o3 C! H
- ;;; Aquires selection set for DDCHPROP2, in one of three ways:/ l6 M! I/ ^5 h$ x/ o
- ;;;% A! p8 X. m3 {, [1 w- L* D
- ;;; 1 - Autoselected.; c2 Z1 j+ O$ w7 d
- ;;; 2 - Prompted for.! d& v# u9 A/ x
- ;;; 3 - Passed as an argument in a call to (ddchprop2 <ss> )- z* h6 `7 e6 Z7 l- B; j0 ]
- ;;;6 r; H" L/ h7 `7 k$ d4 y
- ;;; The (ddchprop2_select) function also sets the value of the
: C$ x# M4 y2 W# E( x - ;;; global symbol AI_SELTYPE to one of the above three values to
* ^/ v' }. ~2 D7 {9 X5 _/ z - ;;; indicate the method thru which the entity was aquired., t: Y) u9 }) M' e
- % \) d, h9 C+ s. I! ]
- - J' ], W, Q6 k+ |
- (defun ddchprop2_select ( / )$ h/ r. v; N$ o! N" j- x$ m
- ' A9 B8 c% P8 z; B) N! Q% W
- . D9 X3 h7 ?) i2 Z. S# h! }7 H4 t: q+ s) J2 f
- ;returns only entities in ss that are in the current space. $ f: x* A* j, G) {6 R0 b
- (defun ss_in_current_space ( ss / a cur_space ss2)5 b/ t2 r8 [3 G. G
( L) T: @/ D0 J5 T- (if ss
1 |2 y* }/ a0 d2 T$ `; v - (progn
7 c* ]# ^; {0 R6 N - (if (and (equal (getvar "tilemode") 0)( w6 S$ Q0 _% s
- (equal (getvar "cvport") 1)
( g' y Y6 t# i/ A - );and ; L) \, {1 g$ V- h5 T) C" p
- (setq cur_space 1);then paper space is where we are.
0 ?) e6 D$ n3 f7 N# H - (setq cur_space 0);else model space.' g. K2 {& ?, R3 ?
- );if% T& F& J, l+ y! Z% d
- (command "_.select" ss "")
1 y2 u% `: u8 z, }( x - (setq ss2 (ssget "p" (list (cons 67 cur_space))));setq
' d2 h' S) o: Q9 B% \ - (cond ;;;;;tell the user what's going on.
. L& O ~* K( {% t - ((not ss2) (princ "\nNo objects found in current space."))
9 A+ J6 W& i1 t - ((not (equal (sslength ss) (sslength ss2)))3 Q3 f7 v; {& m( J$ {" p
- (princ (strcat "\n" (itoa (- (sslength ss) (sslength ss2)))
8 S5 ]5 m- k9 f# X6 b0 P2 _/ }5 r+ J - " object(s) were not in current space."; x9 l( d) {3 H. B( x5 o
- )
8 J8 e& J% t3 Z - )+ Q- `. ~$ @/ _6 g
- ) - a& ] y& V! A" M
- );cond 9 B( U$ a# N4 j. n! v
- );progn then W' A7 o4 @$ `9 E* P H$ y
- );if
6 F# D6 X9 C5 l) H, F - ss2
7 _* {5 `( ]' i2 Q! V - );defun ss_in_current_space$ Z* Z& ]% C+ r: b+ }
6 d& c. ?7 L3 [" V: E5 r9 q B
" D# w- ^* v6 c- ;;;begin the work of ddchprop2_select
0 h/ X: {7 `$ o( h' T - 7 a8 [9 |; s% C' V! T
- ;; temporarily restore original highlight setting.
: ^( d5 |3 m, p/ S1 [/ v - (b_set_sysvars (assoc "HIGHLIGHT" (car bonus_varlist)))
4 @; c4 ^2 ?) d2 ?, r; ?+ X - (cond; Q/ }$ I/ F- O- s2 Y+ F6 L: J
- ((and ss " M5 `7 s- y3 V& n
- (eq (type ss) 'pickset)
' V7 h+ k2 s# t: y2 }2 k. z - ) ; selection set passed to
2 e( M2 e4 z9 |) e: s - (cond ; (ddchprop2) as argument4 t! O7 v8 M, s9 |8 A/ a
- ((not (zerop (sslength ss))) ; If not empty, then
B3 E! L# {2 Z: v7 _) H - (setq ai_seltype 3) ; then return pickset.( ?! \/ Y$ i* T7 n$ i k
- (ai_return ss)
- q8 ~& ?* `) H - )" c7 x# T0 \7 ^4 d8 \6 F6 A( k5 T
- );cond close
4 f/ M: t) H, V I# ]* \, q5 O: ?1 [/ ] - );cond #1: A. b! [# C3 j6 N7 h3 |! X
- ((setq ss (ai_aselect))) ; Use current selection
1 F4 M5 w) ~; J8 A1 S( o5 K - ; set or prompt for objects
4 I7 D3 g, M( k- q% d9 e- X - (T (princ "\nNothing selected.")' Z: z K0 q5 [2 n5 l
- (ai_return nil)
+ `9 q4 d7 p3 V8 t k/ p - )7 v' w- ?' z l5 x7 z
- );cond close9 B: P* G2 {% n, G; c1 d% l9 A
- (b_restore_sysvars)
; ~+ z* H" \# R
e5 w- `. F/ u0 S% [- ;(if ss
; r" l7 d1 Z4 R7 f( q - ; (setq ss (ss_remove_locked ss)) 1 ~0 K4 a, V* q
- ;);if
+ {' r9 B( t9 O. o - (if ss
' v- |! S( ]. U! i# T+ ~ - (setq ss (ss_in_current_space ss))
X n. @/ ^8 D. |- Q4 n6 V - );if5 ^: ~; ^6 _! @7 B. i+ k
- + a$ m8 R$ e. r, W) r
- ss+ l4 t- e. Z1 L6 J7 q7 l3 I" V- t* b
- );defun ddchprop2_select
8 y/ \ R* Q. n4 K3 H3 {( P - 3 h9 y) i- |; f9 ~$ q
0 ~% O. ?4 s* [! X6 }- ;;; Define command function.8 J+ m( d$ o y) { L
- (defun C:CCH ()
7 H) z! E7 B5 p - (ddchprop2 nil)
" R/ B: U" A/ g5 E6 u - (princ)
& R% w5 J+ z/ L0 | - );defun: v7 I: Q. a1 |: A% x
% u5 } m4 w- W; i! j4 J) N: `3 W( p
$ u" l& N W% m9 l; H! O+ |- ;;; Main program function - callable as a subroutine.
' u8 l! v4 f7 P; @ - ;;;
$ \) `; R2 J, S - ;;; (ddchprop2 <pickset> )
/ N; N, [" ~! { - ;;;
7 y J+ o; z+ U& Q$ Z! l - ;;; <pickset> is the selection set of objects to be changed.
% l: s! v9 N/ W, l; E - ;;;
9 L" x" n7 k/ }1 w: Z& J- H - ;;; If <pickset> is nil, then the current selection set is
' f) \ r3 m7 u; }% I - ;;; aquired, if one exists. Otherwise, the user is prompted. [) l% K: c! A! M
- ;;; to select the objects to be changed.: F" \' P% {# Z3 P
- ;;;
5 F( {; {, ^ [, o& h: @ - ;;; Before (ddchprop2) can be called as a subroutine, it must3 C" y" g% D& i& j3 _& H1 ]
- ;;; be loaded first. It is up to the calling application to
1 ]+ w# l3 T, Y$ z D! t/ S% h4 I - ;;; first determine this, and load it if necessary.
% p3 B; h5 B Q5 P7 T' p3 Z - # x% c3 a c+ B. u
- (defun ddchprop2 (ss /! I; Y7 D+ x2 a
5 x( O" W) u$ Q7 P- J* ^% P) j- a1 A3 N# y5 H6 o
- add-mdash i2 x1 X# C& q
- assoclist
& x- R8 u6 [- q; n - bit-70
' F8 x& q$ i! g9 `. V" r. m3 N1 F - boxlength
: R: K' z. o; x2 S - bylayer-lt
) j; c" v- Q2 J5 v" ` - bylayer_col
" v( h" G5 Y+ g U# G: j' J - bylayer_lt
! n' n, w1 r1 Q5 B - call_chp2
' B' T5 q9 O: _5 \8 h; M J! l' \ - chk-col, F5 V. C+ t. q
- ;chk-etype ;var removed by rk ! ~1 Y i9 ]3 g8 f# Y: Y* @! e
- chk-lay
7 Q( T- ~1 t: X3 H$ {7 o. h3 r - chk-lt) J0 p. {* m _( S* F
- chk-lts ;var added by rk 4 x: I/ A4 u4 m# G2 k
- chk-th9 Q7 g) ]7 h# Z1 i5 e
- cmd
# l# K+ ~% c g( P - cmdecho& R* G S2 ?7 M0 D3 L. r
- cn
4 \( @# {; u O# e - cnum
$ t2 [; j: q/ o" P5 i! E2 o. W - col-idx4 U7 H2 X# D: R( f2 x/ S6 C
- col_def5 w) |& J, M* t1 i# M
- col_tile* ]. l( ^# u/ {; U: ~; z
- colname
% V% b7 V3 x2 M# v- i - colnum" V( [3 ]" a8 k
- color; Y- Y" W- [; u7 y
- colorname" d. e( q8 D) v. [
- cvpname: c# H! p) L$ B# W: M: O- c# {
- dash
5 ^) ]8 {. c+ n; Q8 c - dashdata
& z. U% ?; ~& `, e# Q - dashlist9 v: @! \3 ^- a% U, k# u1 y
- dashsize& Q3 I# b- ]& |7 g: D! P' X$ [# ?
- dcl_id: A; D `1 |) \5 w# n
- ddchprop-err1 d/ B6 G% B: ~- b
- drawpattern
W1 R5 p! e7 _7 l) J- ] - ecolor
" x" Y3 n* K* v - eelevation, P5 d3 g* B" o" X" T6 v0 l
- eflag/ v% ?' _+ f6 e2 x" S3 g- c/ [
- eheight- ?% d% z2 S. T1 {, y% Z6 V* c- f# `
- elayer0 ^& A! d, V$ P/ z4 i3 Q2 q y
- elevation
3 ^) y4 w5 Y; Q+ k( n& K - elist9 D! N. q& _% o m" R% E U$ W0 m
- eltscale1 R& y% r0 H, Z+ F# @
- eltype7 s% I& V. J; g- V
- en
3 Q2 Z: s: `/ u% P% p# }& {# ] - ename/ l& J, m- P* O# G, C
- ESTYLE ;var added by rk
( H, }. R% m$ ?. B! ^( f& x - ethickness( g6 q& X5 N6 B% w: J# Z( m; Y
- ;etype ;var removed by rk
4 X. O% V2 _1 Y4 ~& L( v" q - ewidth
3 i+ Y$ z7 i: E4 O a9 ~& ` - fchk
9 P# ~9 W( ?$ R9 P8 x" n - frozth
, S% _! |5 G1 U' h R - fx
: K0 a; P6 z' U7 g5 g) I& N [; } - getcolor3 a' y6 B# R! c
- GETELEVATION ;function added by rk
) @2 J/ I/ I! \4 E/ s - GETHEIGHT ;function added by rk: C3 w0 q7 w$ |6 I& i
- getindex
$ [7 @5 h' a0 g8 P7 @; R - getlayer- [! L/ t. j( H0 {: Z" j
- ;get_locked_layers ;function added and then removed by rk
2 ?7 ~, N9 @* z - getltype1 r' k- |8 g" {
- getprops% g' i' h+ F! M
- getscale ;function added by rk' @) t) y; D$ R% |) E
- GETSTYLE ;function added by rk
5 A; k" z' J" R2 V - getthickness
# v. [7 v/ h% q( Y$ _. X6 U' { l - GETWIDTH ;function added by rk
/ }$ D' `& k* |) J/ t Q - globals7 `( \# v4 V0 Z$ C/ |: C7 @ M6 ?; L# }
- HAIR_STYLE_LIST ;var added by rk& X/ Y$ E2 _) t T0 i! |) I& Z
- height
8 m% K0 a6 t( o - index) ?( F, @. e! n( a6 e3 J c
- item3 R6 d7 o) w- J
- item1' q- M, S: I" E [& O2 W
- item2
! B7 V$ g) K2 c+ X: O - itemlist7 q, n7 T( M n3 @0 E
- lay-idx* I' q: D! f. o: `
- layedit_act
c' ?' A( z7 Z j! U" ?6 q6 S - layer
8 b2 J; t8 b; U) T; a" C L - layinfo
# t8 j) r1 d( h, a2 q% ~ - laylist
5 E- ^2 T6 W+ f) g - laylist_act
% V" x% h- I" S1 W - layname
8 U. N8 z" l9 M( Z0 J - laynmlst2 t5 v* ?3 E% @; o$ u
- layvalue' ^2 ]+ e* g# I7 J! e7 |4 z
- linetype
+ {% G7 e, o5 @' K o8 e - list1
5 O: j+ x* [$ K - longlist
J% `: E8 H: x) @' H7 Q4 l1 u - lt-idx: Z) P+ n B$ f
- ltabstr& i: A1 b8 W, u: j9 q/ C
- ltedit_act) {; g& y3 l( n; Z5 \! t
- ltidx. }$ ~: j/ @+ a
- ltlist
! _7 W; T7 c4 f7 ?/ W! z - ltlist1
( ]6 U* p& |1 d! a$ y$ H& m* f& [6 Q - ltlist_act' M' E0 e3 S Z1 j( I1 j
- ltname, B" E/ |/ j( R1 Q8 l
- ltnmlst
8 H5 U7 P2 n% l$ m - ltvalue; ~5 z% a4 S: a; \
- ltype5 \# b9 K9 f2 k5 y5 A2 U; w7 B* d
- m
- J7 X) h. h8 g( B3 t# r - makelaylists
% I& R6 g# X+ g7 _& | - makeltlists$ M4 P% b3 b# T6 ]
- match-col" ^3 K5 g1 h) M7 d! W
- ;match-etype ;function removed by rk
. Y% G# T2 q" P: y- O - match-in
# w9 E& u( N. C2 ?' ^' z& S6 ? - match-lay1 F2 V# n" @+ T
- match-lt7 V, y" k: s; _& p9 D) y& d( ?
- match-lts
# n+ C/ V+ b3 i* r: d( D3 u7 ]. o - match-th
9 a s' F# d) h1 ~2 r - match_col
$ p5 x6 `/ I" L - mdashlist
9 y9 S: I6 a7 G; [: } - ;MPOPLST ;function added and then move to ac_bonus.lsp by rk
$ X4 }+ E$ b$ \+ f - n
) ?2 m% {# e7 N( G& S( f8 [6 i# ~ - name" ?$ T: Z4 U. T6 P6 u7 U
- ncolor
0 n- n6 Y7 L5 J5 |" l - nlayer
8 L/ s* y4 L1 M: w. e - nltype
! S; C2 N: \+ g. F' q - nthickness4 _0 {! b$ f ?: s
- off) X& S# V) E: S7 e
- old-idx: J; m$ J: R: u% c
- olderr& Q, U) \. u) ~ a( \
- on
. z, O1 g$ q& G! {- i5 Z - onoff
" S9 v# v6 Q' e x% a5 I - patlist
. e! L8 ^8 H" a - pattern& y7 E2 N! J0 Z
- PL_WIDTH_GETTER ;function added by rk
Y% I) K- F2 H" m$ @ - POLY_SS ;var added by rk
2 i: B* J [. t+ S - ;POSITION ;function added by rk and then moved to ac_bonus.lsp# Q' I& \# W8 G
- proplist
% U) S: u% n6 M* ]' a- l3 D# k- G - reset-lay
; ?8 s% k9 M& g" b - reset-lt& U P0 t6 e+ l4 k [% j
- s
+ g8 [7 M' t0 J7 p0 N - selset1 K1 `5 o' |" L ?7 B
- set_col_tile/ G+ d# i3 x$ f) c! {# @" h% S
- sortlist
! D6 n. v C, P# l6 N& ^7 s( C5 @ - ss
% N O4 _6 F1 I8 o - ss_in_current_space ;function add by rk.4 `, P3 X9 b" Z, q D+ y4 W9 r
- ss-index
6 z9 A- R8 o/ X5 J4 Z - ss-length
. z- H0 _, a- u* b' R" O. d& | - ;ss_remove_locked ;function added and then removed by rk.
" f$ x u* }& t+ Z" D' _2 O - sslen& f# v# {6 w( |5 x [# W
- temp_color
( E8 K9 b( s. L' M3 k* M* ] - templist
- h0 S( z9 b/ z0 R - test-main-ok
' D& r$ x. `$ V2 f! E% g' \ - test-ok0 m8 F7 A* M$ }4 k+ V5 {) ^
- testidx5 ~$ H1 F8 U% h8 t% i
- testlay
- V' M! S0 t; z4 }+ \# V8 ? - th-value. r0 G6 d+ r# t/ v
- thickness
, m+ W' T9 J+ ]0 h% I* y - tile
% P) e0 O& c" f1 S5 b4 z6 d5 B - tile_rect* w0 ^3 y: j0 J8 R0 M+ ?& \
- tilemode8 t! }, m, Y- |) K+ L
- ;TNLIST ;function removed and moved to ac_bonus.lsp by rk( |1 m* q5 b E2 Z3 G1 N
- TXT_SS ;var added by rk+ p8 ~* V7 J5 G1 I" ^ t1 c
- ;undo_init ;removed by rk.
2 L1 W) u0 l: d# z - vi, x, Y" a0 F* s, s* d. f1 ]& R
- vpf3 D4 Z4 n9 r. Z
- vpldata7 C6 `7 q8 A7 y, I
- vpn" B6 }) X. N* s5 k' ~$ ^
- which_tiles
1 B/ P- a4 q# v - width+ {4 u8 [6 \/ X# y( _9 i
- x
5 |, \: P# E$ }, k+ ^7 J - x1
5 P* ?; O2 d1 c) \; h" ^( `/ r3 g - x23 l* e* _1 k6 F5 u( a3 F
- xdlist3 z$ E( ^# O* y% R* M0 g; j
- y3 b( X0 z* ]' n0 ` Y+ o: q& S
- y1" I% `( ]5 [0 x4 M9 U: _6 X
- y2, j$ t! x8 O O5 ~
- )+ ]6 L e. M4 o+ k0 v8 u1 P
- 2 x+ j6 r8 J" A1 p. y7 w$ G; _* W
- (if (and (not init_bonus_error) n4 @5 u+ b' l' E) ` @$ }
- (equal -1 (load "ac_bonus.lsp" -1)) % C2 V2 P# S0 z8 o7 \8 q, v
- );and
0 N' `8 W9 i9 @) X; U - (progn (alert "Error:\n Cannot find AC_BONUS.LSP.")(exit))
9 t' \5 }+ ]4 N - );if- d* {% R4 H, I$ V6 ]0 @
- (init_bonus_error (list
% c( d8 }3 X$ D) y* v+ ] - (list "cmdecho" 0
* O8 F, F9 V: S4 c+ y/ j \ - "highlight" 0% p' W' O$ }, w" \7 ~
- "regenmode" 1
& o+ [4 y" l6 p7 \( U1 x0 ? - "ucsicon" 0
- S1 {, u+ h" l2 X - )
- c* G8 w3 V5 G& a - T ;flag. True means use undo for error clean up. / @5 ~7 E0 V, _+ ^; z5 y
- );list ) i8 ]3 Y6 g! F
- );init_bonus_error1 U/ q! L1 S% U) N l* P
- ; g. I5 w |' y [0 m
- (cond
; m3 Q; C( ^! Q) {8 B - ( (not (ai_notrans))) ; Not transparent?, V+ l" |9 M d/ @: J" |
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?- n2 I* b; R1 t+ ^3 n( f& P
- ( (not (setq dcl_id (ai_dcl "exchprop")))) ; is .DCL file loaded?9 m8 f7 P$ \( @$ A3 r
- ( (not (setq ss (ddchprop2_select)))) ; objects to modify?
" W. G( p0 _" T4 S: w - (t
* q; Y7 I( D$ B1 {( e7 ?+ Y7 { - ;(ai_undo_push)
8 T, ?& u3 ]! z8 P/ p* x# ^ - (ddchprop2_init) ; Everything's cool,& f$ F5 w+ n; s o5 N
- (call_chp2) ; so proceed!
$ L U1 A* f' s( ?' i3 c - ;(ai_undo_pop)
5 e# P+ T9 _( Q/ ` - )
8 J' g; T s) C; C C - );cond close! @/ l6 f/ v3 M* y" n- F
$ g T8 L9 C8 N) n- (restore_old_error)
) r: u. k& E0 I0 z, B" J - ( `7 j4 F C, \$ @( m1 X, i- j
- (princ); o( l6 m$ h# U1 G G" m# D
- );defun ddchprop2
4 k4 W; g. t( k5 Z( B" j - ( c% A% N& x7 X8 \; e' W; l
- ;;;----------------------------------------------------------------------------
+ I& e# [6 s& [+ q5 t9 n - * d# S; A& r( A _9 T- z
- (princ " EXCHPROP loaded.")
6 x* r" j( D1 G1 ], ? - (princ)
5 t8 C$ K+ D6 h+ f1 d - ; L0 N+ g2 g3 I
- ;;;----------------------------------------------------------------------------
+ g9 _0 I" }) |+ i! z1 d - ;;;---------------------------------DDCOLOR_LSP--------------------------------
$ C0 P3 K( i5 F- q* ]. T8 } - ;;;----------------------------------------------------------------------------- Q/ z f# M2 h) I* D6 O. e( K
& G0 m* N! s9 a; @- ; Next available MSG number is 24
& I; Z2 f$ d& @9 } - ; MODULE_ID DDCOLOR_LSP_ ]7 p! i1 ]0 @) w9 y% F
- ;;;
/ w K( l3 A2 E8 e1 T - ;;; ddcolor.lsp
- H9 Q$ w% }7 R5 P3 e$ v. _" u0 O# R - ;;;
0 X# J1 Q* R8 @$ e5 o - ;;; Copyright 1990, 1992, 1994, 1996 by Autodesk, Inc.
) l8 [6 f: N$ g. ^+ e. g$ X - ;;;
$ E& K. H3 I6 {; W( q" T - ;;; Permission to use, copy, modify, and distribute this software* N9 f# `0 e. f+ `4 ^
- ;;; for any purpose and without fee is hereby granted, provided# L# \" h: F9 C
- ;;; that the above copyright notice appears in all copies and* v4 [4 L% F7 R) e: C# n' u
- ;;; that both that copyright notice and the limited warranty and* u6 V! F3 e" l& H& K: I
- ;;; restricted rights notice below appear in all supporting7 e: `! y' a' d
- ;;; documentation.0 |$ ~8 G/ Q/ y) r' D. f& V' F
- ;;;
& M0 ~% ]; J/ {# r3 s, i% L' s - ;;; AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
1 ^& z9 m) r% g# |' n5 Y - ;;; AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF& i' d; O! f6 f% M, ~
- ;;; MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE. AUTODESK, INC.
- R" y% O" E8 k - ;;; DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE" @9 Y6 L% j( l. \& X$ c
- ;;; UNINTERRUPTED OR ERROR FREE.4 z6 b! F& \4 d7 E, x8 Y
- ;;;
4 r" Q( t E0 A: w. q$ q* | - ;;; Use, duplication, or disclosure by the U.S. Government is subject to
9 i' a) A& s1 R4 E - ;;; restrictions set forth in FAR 52.227-19 (Commercial Computer
9 n5 w/ I* r8 w! a - ;;; Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii) ! V: p$ s0 A; \6 g1 c& x3 P
- ;;; (Rights in Technical Data and Computer Software), as applicable.0 T$ _; m3 V3 ~5 J
- ;;;2 J$ ]% j/ D* B# \* B% g
- ;;;.+ p1 _ f" m0 G: ^- S! V; \6 ]
- ;;;& `8 I, _6 n6 q/ w
- ;;;----------------------------------------------------------------------------6 a1 W' M# W, @
- ;;; DESCRIPTION
~. p" ]) Q9 M& ]( J4 m7 R; O - ;;;
" W2 u& @2 m1 D# x- N - ;;; Chromatic Pallete style color selection dialog.9 i3 z4 W9 s4 |+ O8 ?4 {
- ;;;
1 C; ]- l: n, N; P - ;;; Globals:
}' d7 }* L0 T- ^0 J, p. l - ;;;
! l& L0 g$ ?7 A - ;;; chroma_color - Integer color index. The last value selected- I1 n Y' u* `
- ;;; by the user in chroma dialog. It is not cleared or reset- P) X! y; H% q) C# u0 R" L
- ;;; by a cancel. Only used for communication between callback9 X0 l0 v5 h) D1 B. s$ A' M
- ;;; functions and the (chroma) funciton.
& R7 T4 D) y P" z ^4 _( A; S - ;;;
- M0 `1 ^* d% d* T - ;;; Depends on the definitions for the dialog provided in chroma.dcl. |$ b. n& e# \5 y7 F l+ M, |% `: Q
- ;;; 8 R5 n) K4 H; \% M) Q6 U8 ~
- ;;;* x7 [3 r3 B" n5 D! |* C+ Q {
- ;;; C:DDCOLOR -- Dialogue front end to the CECOLOR sysvar. Uses the chroma
9 l9 B4 ?$ G; M - ;;; pallete style color selector.5 R; [" a' U, U& n) k6 O% U0 y
- ;;;8 V2 k" F- n% p0 w6 L1 x
- ;;; ===========================================================================4 D, A) p' e) [1 A
- ;;; ===================== load-time error checking ============================* k1 P7 x# i0 Z: A1 G; K: [) g/ _
- ;;;
: k. @ v" L# F5 U. x( N - . a# W, ~, L5 ?
- (defun ai_abort (app msg)
1 E- D4 |* x: r. H. ]- D3 g8 o$ o - (defun *error* (s)
2 Z' b- Z& M3 P6 F% `) R; X - (if old_error (setq *error* old_error))0 l, B; K5 \" y9 S% Q* \+ q+ k0 d* F
- (princ)' p O6 b$ L2 Q- r8 j/ J/ E
- )3 f ]* A! p! ]" R# |" d
- (if msg9 @- U. I* T! {7 N' `4 u2 X2 C
- (alert (strcat " Application error: "' a+ ?9 ^% ~3 r
- app
0 \" b2 S n7 t - " \n\n "
# w# x3 i) N! L3 j1 m4 u; B* I9 y - msg
0 w, k# p) ~+ C$ J' v# L7 s - " \n"0 ]$ R/ a1 G+ n8 r: P, P5 y
- )
5 i# X- Z1 P, r0 z - )
4 b2 _5 O' Q% |7 l: b - )/ V9 d4 ?( q. u1 I7 T
- (exit)( w8 {/ o' b8 x2 p* K' k! ?3 x; G# k
- )
. q6 w, R' A. t' m& D2 d
7 d; D. u: y/ v- ;;; Check to see if AI_UTILS is loaded, If not, try to find it,
p! ]+ I! N5 t. e4 L/ v1 [5 w& \: W - ;;; and then try to load it.
4 p2 ~5 S3 W: m# e3 b1 n0 _; Q: } - ;;;
& x2 N; B; ]3 B8 f% r& K - ;;; If it can't be found or it can't be loaded, then abort the+ K( v) d: E, ]) z8 \' M
- ;;; loading of this file immediately, preserving the (autoload)
. k% F- f, H) _/ g, ~) m& [7 w8 X - ;;; stub function.) J# `3 u" \$ P$ v# e7 J, W
- ( K/ ~+ E& F7 B/ J* @
- (cond# l! ^4 _; P/ W1 s$ N, }% J' D
- ( (and ai_dcl (listp ai_dcl))) ; it's already loaded.
% \7 P; P+ {2 J+ _ - # g9 Y* b% B9 e# h$ H9 F1 w2 i% z
- ( (not (findfile "ai_utils.lsp")) ; find it% D2 ^/ g! f" \' B4 C* B) H1 ]+ O
- (ai_abort "DDCOLOR"- k/ u" Y! T: ?9 K& i3 w
- (strcat "Can't locate file AI_UTILS.LSP.", o( N$ }$ n/ q9 K: h
- "\n Check support directory.")))
' t$ B( T2 j5 c% ?
% E7 T! y% z, z+ X5 @7 M; p- ( (eq "failed" (load "ai_utils" "failed")) ; load it0 B, h- |4 f, G7 k
- (ai_abort "DDCOLOR" "Can't load file AI_UTILS.LSP"))
/ |. i0 S( W+ H- @) b - )
) S+ w' j9 ~& P% c - $ U. r- o' l9 Y$ s* A* y/ O
- (if (not (ai_acadapp)) ; defined in AI_UTILS.LSP1 a* B: Y$ @$ ^& l6 ~
- (ai_abort "DDCOLOR" nil) ; a Nil <msg> supresses
7 F3 o( J: L2 e8 t: c - ) ; ai_abort's alert box dialog.& e0 G4 m# A8 ^8 W) }! J
- 8 G+ K( j" E6 s B7 R1 t
- ;;; ==================== end load-time operations ===========================1 g' e; Z% f2 N; ~6 |- l' Q) r& ~
- " M( ?3 k: s0 T1 ~
- (defun c:ccc (/ co_oce clrx co_err co_oer lay_clr)' |) b4 ?; h4 g) D6 G* V
- # w8 u, L3 d5 v' k# C* d' b
- ;; Main Color function, called by setup code.) J U _& X- Z
- (defun ddcolor_main()
; \3 R1 v( r$ g8 W0 ^6 ]
_" d! b/ x e. B8 H/ x4 R: T- (graphscr)
. S x. `9 R4 x, ?( ^, V' n -
6 |# q+ n0 X- Y, z - ;; Get the color of the current layer, for possible BYLAYER color swatch.
$ V, d" P! ~* b5 g* a) w4 }0 n - (setq lay_clr (cdr (assoc 62 (tblsearch "layer" (getvar "clayer")))))
) t1 f6 L+ a6 Q& v
6 ~7 _ [! Y R+ q/ y, n, p- ;; Call the dialog here...
) r W6 J& }' h! ? - (setq clr (acad_colordlg (cstoci (getvar "cecolor")) T lay_clr))
$ u) x2 D1 X! p! d7 @0 M - ; U+ C5 c. ^' l: G! h' j8 C! g( g
- (if clr
8 c* }7 U; k4 M9 `4 i J, o) n - (setvar "CECOLOR" (citocs clr)))
, ?# u" R3 `" \6 w9 O& s4 n6 c - )
; z; z. l* s D2 p2 T5 h% y
6 x2 j5 P+ J6 }. ?6 G' \9 n- ;;;& V, u, O0 D) `, E5 J4 l. K* n
- ;;; CSTOCI -- Color string to color index
7 B. t! A1 d! P: f) {5 C- q! U - ;;; Convert an arbitrary case string into a color index.
% H6 m" B$ }9 a, S8 B - ;;; Returns nil if string is not a valid color.+ f: T6 w) o9 y$ i: j7 A3 o3 k
- ;;;. D0 _: u& Z* {* `2 E9 n) Y
- (defun cstoci (str)
5 O% O/ C! S8 D3 z* E, | - (setq str (strcase str))
$ j# [5 [+ Q$ l$ e( T - (cond
* q( o& i8 J9 p1 z3 ^1 B. h - ((= str "RED") 1)3 S! x6 k1 U' _+ ^7 P, g" W
- ((= str "YELLOW") 2)
' \/ B/ N$ d3 u9 g - ((= str "GREEN") 3)! G) N9 t; X9 g+ ]$ X5 P6 y
- ((= str "CYAN") 4)
+ ^; M! D5 d$ s: U ]9 s$ Y - ((= str "BLUE") 5)1 A; [. F, x7 X4 ^
- ((= str "MAGENTA") 6)
# d! g1 f. R$ m0 X. P% \* Q - ((= str "WHITE") 7)
/ n; d* ?9 O& K - ((= str "BYLAYER") 256)
8 o: A# G0 S d - ((= str "BYBLOCK") 0), s& S# I8 y; N; T) w$ g$ ~: V
- ((= str "BY LAYER") 256)
8 E" C. x- i$ O1 g9 m - ((= str "BY BLOCK") 0)& X& k( h0 t+ R! ^% i; \7 J8 d7 H
- ((and (< 0 (atoi str)) (> 256 (atoi str))) (atoi str))
7 H6 z7 J3 L* M9 X - (nil))
4 V) k( W- H, U3 z7 W0 i - ): B9 V: w! u6 Y/ W6 Q3 q/ Q9 G' ?
- 5 s2 j& T4 Z5 V+ P( e9 G* }
$ T) _8 T1 |" p" o1 d2 u- G. x- ;;;
+ ]: t v5 t! a- @ - ;;; CITOCS -- Convert color index into standard color name.4 m# p; [+ V3 F! u: k8 {/ H8 j
- ;;; Will return the standard and logical color names as text
- Z( o* `: ^6 u3 q0 C$ O - ;;; strings. Returns nil for out-of-range color indicies. P2 z4 u$ i' }! Y
- ;;;
( ?8 D3 y; N# s& W/ Y( z - (defun citocs(i)7 O4 R/ L4 w& L" D( b- i
- (cond
, L* @/ N! E9 o8 j% J( [; `7 K - ((= i 0) "BYBLOCK")0 M; t% d( c! T' l0 B$ S
- ((= i 1) "red")
: b4 T% B+ v6 a* T# C - ((= i 2) "yellow"). \, Z3 E6 D$ u& P& ~2 i4 `- b1 y5 B9 ?
- ((= i 3) "green")
2 @" H3 n5 l% z" c* M0 R1 p- }1 Z - ((= i 4) "cyan")5 e' W! n$ M( y3 l; ^: p' M# M
- ((= i 5) "blue")
6 C$ S! q( b1 x' T) F - ((= i 6) "magenta")+ h( s# b( x( V8 c5 ^: p- Y
- ((= i 7) "white")
2 |+ r0 J$ n4 K w, p - ((= i 256) "BYLAYER")9 G3 a% `* m. ]" h( n; v+ e- V
- ((and (< 0 i) (> 256 i)) (itoa i))
1 H+ \7 v( [! a' _ Z - (nil))
4 X& S) \4 }" P) w4 w* Y - )
4 U9 }7 u- |6 U+ q4 j& g3 ?1 H9 j
- x" T7 J$ L: p( M9 p- ;; Start of ddcolor( P8 J* r; \( T
- (setq old_cmd (getvar "cmdecho") ; save current setting of cmdecho# V/ I% `1 a7 L3 i9 R
- old_error *error* ; save current error function3 R$ v- ~; F; r- q! N8 O8 z
- *error* ai_error ; new error function. y! c# h+ m+ t# a
- )
0 H6 P/ N. [5 t7 l6 I
& A: ]7 b( }1 N4 S1 r1 l- (setvar "cmdecho" 0)
. c6 q3 `8 P* V4 [& ~5 V+ R
' B: l; r. f' `; _# T- (cond
2 E, K$ F) G: y$ |6 a - ( (not (ai_trans))) ; transparent OK2 j) }, B/ @# a- H: ~, N! ^! h6 K
- ( (not (ai_acadapp))) ; ACADAPP.EXP xloaded?1 O. ~( o# f1 R, N
- # l5 d. k5 i: e
- (t (if (and (/= 1 (logand 1 (getvar "cmdactive")))
) ?" y8 s2 {! N% O) G* } - (/= 8 (logand 8 (getvar "cmdactive")))$ [! {9 O# I# Z& A
- ); @0 j9 h" I) x% q- C9 @- A
- (ai_undo_push)! P" c" Y3 A& s/ T
- )+ D4 q, I/ W, y7 Z
3 a8 `8 K9 g' J$ U3 V- (ddcolor_main) ; proceed!
7 i3 x- S( H1 B! m* Z" p* |9 B# [ - " C4 Q) ]0 X8 E; T/ b3 ~9 `/ k" Y
- (if (and (/= 1 (logand 1 (getvar "cmdactive")))
; D( R% ?! J& f3 G6 z - (/= 8 (logand 8 (getvar "cmdactive")))
# G$ t( y( g# b, C - )
# K$ F( Q. l& o - (ai_undo_pop)- j8 J6 p" U9 [5 X
- ); H5 A: u: |" r$ B; N. y8 k/ F% m* X* l
- )
+ b4 }. m1 I6 ?- v6 M! o' L - )5 S* T% V7 a4 C; G4 G( w
- % k! U S1 U- l! X9 ?
- (setq *error* old_error)
% t! Z/ ?' \' X) V i# I5 v - (setvar "cmdecho" old_cmd)* F4 M# ?- t1 U: `* n
- (princ)/ k. s) n7 j7 \* c" E1 d
0 j z5 W5 x9 D8 ^- )) g7 i7 X! k* u
- 0 G3 \. | M- O- S* ]7 P* t, j
- ;;;----------------------------------------------------------------------------
$ D. }+ p; H: m/ j" s2 R+ o
3 U2 }! S- g! `+ ^3 ^* X- (princ " DDCOLOR loaded. ")
" {( u, K/ z$ ^; ?% \ - (princ)
. ?7 n+ b5 c' H. v0 K
( Y6 h% a I& b# [8 e9 ?9 b3 v5 G- ;;;--------------------------------------------------------------------------;
( K$ _! ~) n+ }0 l2 S - ;;;---------------Chon NHANH Nhieu Doi Tuong GIONG THUOC TINH----------------;! b; w8 U f k* k/ V% e2 f
- ;;;--------------------------------------------------------------------------;& e3 V- e" a+ s) J' J" T
- ;;; ssx.lsp
$ w. q( k" @! x - ;;; Copyright (C) 1990 by Autodesk, Inc.6 V0 T' c4 v# S2 V7 X* S
- ;;; Copyright (C) 1991 by Control Systems, Inc.5 j2 A2 x0 e9 L. e$ J
- ;;;
; I, g6 G! V( J - ;;; Permission to use, copy, modify, and distribute this software and its$ f% b( J) C$ P1 S5 Q4 u
- ;;; documentation for any purpose and without fee is hereby granted.
5 d9 Z G" D4 I4 t3 K2 ] - ;;;
9 \0 I3 z8 p1 A - ;;; THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
" w$ ~- t4 M) [' G' V - ;;; ALL IMPLIED WARRANTIES OF FITNESS FOR ANY PARTICULAR PURPOSE AND OF
|9 ?1 y& r! f7 L+ d8 D8 a4 G: R - ;;; MERCHANTABILITY ARE HEREBY DISCLAIMED.+ ^# Q0 V8 I' m2 C
- ;;;
; T) p% X- k+ B& n9 o - ;;; Larry Knott Version 2.0 7/18/887 }% Y/ E3 w- A3 l0 ?
- ;;; Carl Bethea & Jan S. Yoder Version 3.0
8 [) P; Z2 Y* w* K - ;;; Enhancements to (ssx)./ E% g8 ]. A! l# g" a9 P3 ]
- ;;; 15 March 1990 ) L. t5 x1 s+ R4 w5 N6 n* s4 Y$ Q; @/ ?
- ;;;
4 q$ W* W6 n4 O' u- x# _4 x - ;;; ARTIST Software, Inc Version 4.0 December 1991
9 q9 b3 _3 x( P, k5 | - ;;; Modified for FLEXICON usage. If the variable FLEXVAR = 1,7 @' g9 ^' X; j5 a% b4 t. B
- ;;; use Flexicon menus
' M! m3 h/ j |5 b- H7 {. h9 V% R) r - ;;;; x+ {6 j4 B: ~ Q
- ;;;--------------------------------------------------------------------------;
. M9 B$ F w- W$ }. d! r( c: J1 L - ;;; DESCRIPTION2 @' f/ t: E3 O0 c) N% @: O
- ;;; SSX.LSP
6 J4 ?# @6 n! E7 z - ;;; - W# d. \6 _8 z0 ?# W* ~" {
- ;;; "(SSX)" - Easy SSGET filter routine. 9 `# X J$ G+ L: |
- ;;;
5 Z8 h2 N2 I7 C - ;;; Creates a selection set. Either type "SSX" at the "Command:" prompt
" }* M! N' w: e& O/ _' z - ;;; to create a "previous" selection set or type "(SSX)" in response to : d6 `6 L( ]% q; i. Y. v
- ;;; any "Select objects:" prompt. You may use the functions "(A)" to add
' I7 v1 i9 i# _; O- W' B- u - ;;; entities and "(R)" to remove entities from a selection set during
( h- ]8 \4 R! x7 D: r9 ^% m - ;;; object selection. More than one filter criteria can be used at a ! Q7 r8 p4 z1 [6 Q# {7 W& p+ t; J
- ;;; time.
7 Q: f6 C, s6 v! [' w2 s - ;;; . e0 o( |, C5 [( \
- ;;; SSX returns a selection set either exactly like a selected
6 V2 K4 x9 L) R0 l# P7 q4 _4 o - ;;; entity or, by adjusting the filter list, similar to it.$ V# @: Y' O, o; i5 _6 b
- ;;;
7 q3 E1 w8 V% C1 x4 c* T - ;;; The initial prompt is this:
`# B* [: M7 k6 B4 } - ;;;
% F3 \1 [2 Y- M! i% F. J3 w- m. Z - ;;; Command: ssx
4 g; x4 p9 Y2 p' |4 H2 N2 C - ;;; Select object/<None>: (RETURN)
- q7 A' ~7 P/ p$ n - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
- Z; ?/ W1 }& |2 c# z+ L - ;;;
7 @- ]9 x3 k& ], O - ;;; Pressing RETURN at the initial prompt gives you a null selection
: w ~7 n) o- j. y: ^. n+ D - ;;; mechanism just as (ssx) did in Release 10, but you may select an
9 L9 O3 s& l y) Q - ;;; entity if you desire. If you do so, then the list of valid types " v2 p2 B( m+ \" F0 M8 i! d
- ;;; allowed by (ssget "x") are presented on the command line.3 s5 V ^# Q/ s7 f& M
- ;;; : ]% P: D0 {( Z- T" U4 l
- ;;; Select object/<None>: (a LINE selected)
/ M* l$ @$ v t8 t- S$ E& T' V - ;;; Filter: ((0 . "LINE") (8 . "0") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0)) # I4 j" X5 h7 J. N1 Q* O8 J
- ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector:
: A/ j# E# r! l: M - ;;;
0 G1 z7 }6 S/ m( Y - ;;; At this point any of these filters may be removed by selecting the 9 h5 |5 P- E( j% _' o. `& x9 J
- ;;; option keyword, then pressing RETURN.# p4 _4 C% g/ `2 E i: \' a$ t+ [
- ;;; : ]5 H" b7 s5 X7 n# s O
- ;;; >>Layer name to add/<RETURN to remove>: (RETURN)
+ E8 M( \* Y/ Q9 a - ;;; + a+ R6 p9 m5 J Y% e8 n; U
- ;;; Filter: ((0 . "LINE") (39 . 2.0) (62 . 1) (210 0.0 0.0 1.0))
, ]2 A& K G5 N7 a t - ;;; >>Block name/Color/Entity/Flag/LAyer/LType/Pick/Style/Thickness/Vector: 4 f! e# z1 D4 z( H# \
- ;;; * A1 |, s# h( _2 O4 Q7 F# f6 a/ D
- ;;; If an item exists in the filter list and you elect to add a new item, ; @0 O% _; @3 m$ Y1 j
- ;;; the old value is overwritten by the new value, as you can have only * o( h" a' B$ ?. g$ r
- ;;; one of each type in a single (ssget "x") call." M" }" R* V* l8 @) K
- ;;;
6 j9 @9 d% a. f& Z: v# g4 F- @ - ;;;--------------------------------------------------------------------------;
9 l4 M! Y4 |! ~$ F# b - ;;;2 w. X, }8 @8 m
- ;;; Find the dotted pairs that are valid filters for ssget
, t4 \; }+ j. u0 S - ;;; in entity named "ent".
; c6 g+ B1 O3 h4 r2 Y - ;;;
; m/ Z- e$ {$ |8 F6 n b - ;;; ssx_fe == SSX_Find_Entity
* V+ K* O; R) I8 v' ?2 T2 V- [ - ;;;
* k" l/ I+ J0 ]9 O& W# E2 F - (defun ssx_fe (/ x data fltr ent)) s' x- c2 `2 d, P, [2 T
- (if (and (= flexvar 1)(/= t2 "Pick"))
. L" K( R( R: E - (setq ent nil)) k5 q- _: ^* E
- (setq ent (car (entsel "\nSelect object/<None>: ")))
' E. S/ C$ {( v% j1 q! T/ C - )
4 ~2 L5 d' {& t - (if ent" m! P# S8 @0 f$ ?' x- U6 }4 U
- (progn# _* V' v3 ~5 p, h& I" G# h
- (setq data (entget ent))& L! C0 I }- P4 j
- (foreach x '(0 2 6 7 8 39 62 66 210) ; do not include 38
8 U9 l; l" [ x0 x - (if (assoc x data)& |" _0 h+ B" Z* P9 T H5 A( ?- s2 p
- (setq fltr + g6 h* x! T+ l) c
- (cons (assoc x data) fltr)
7 h5 ?) n- V4 J4 S9 x9 O. t! M - )
5 W9 c O# c2 \/ A - )
* f8 ^1 T6 f: o - )
1 M- J% O1 G6 L* d6 D - (reverse fltr)
9 j/ A' V' Y* C/ K - )6 J: N) Y' I% o# U6 ^
- ) ! X0 N6 T! m+ x& v
- )/ w2 Y* S" z# [7 K9 X
- ;;;/ s7 f3 E# b: m3 u# |
- ;;; Remove "element" from "alist".
4 A/ M/ k g1 T; |( l - ;;;! c1 E' e0 l2 x
- ;;; ssx_re == SSX_Remove_Element; x* d7 i4 O4 U/ A0 ~
- ;;;. \7 l: c% W$ L* a/ [* A7 F. R* }2 H
- (defun ssx_re (element alist)
7 U% d' r. q: u- P. E - (append
/ c( }, O \( u: k, w, l$ G - (reverse (cdr (member element (reverse alist))))
9 l6 U* `' U8 M. d X: ]6 r0 H - (cdr (member element alist))
* d6 b' k2 T3 S! e4 ?6 z1 c/ U - )
V' e7 D* I+ J* y# g" Z5 j+ Z2 x - )
" P0 C) W9 e: R+ i' t; w6 x8 M - ;;;
. C/ P) t* i8 N: m - ;;; INTERNAL ERROR HANDLER
0 p; M1 ]5 p } - ;;;
, t3 F8 n0 A1 C - (defun ssx_er (s) ; If an error (such as CTRL-C) occurs
: P& w. d8 v% E, f2 y( E' J - ; while this command is active...6 u* v- Q5 t9 C2 S9 k) s
- (if (/= s "Function cancelled")
6 A( L P( A8 {. y( a0 @) V - (princ (strcat "\nError: " s))+ a/ J5 ]" F; ]. g0 z1 J
- )
( P7 m' k0 s# q! @, T; F/ x - (if olderr (setq *error* olderr)) ; Restore old *error* handler3 a. o9 O8 T7 O1 }9 K- w
- (setq flexvar 0)5 s2 P5 r( Z, q( m
- (princ)8 e' t& C$ ?3 D; w
- )! j1 b# G6 \1 b* L
- ;;;
% U5 y6 C) O& r7 e- S - ;;; Flexicon call routine
: ]( M# \# d6 g% ? - ;;;
& S4 X A7 @" g5 m g# l4 U6 c' T# q - (defun flexmnu (a)
; Z2 P6 N% X% z9 g& M: n" W - (if (= flexvar 1)
' U1 s7 l& X3 _; G; U3 K V - (command "FLEXICON" (strcat "FLEX" a))
) m2 K2 [# l) j- J; _" f: i( V - )
& t3 B* y9 w3 L# Z6 { - ), b1 } L: a% J
8 a& x% Y2 A; W7 F- ;;; , I* k2 c: ?1 U* R$ n
- ;;; Get the filtered sel-set.) {# P! n0 e: e# @4 j% u
- ;;;: i6 y# s8 w: V
- ;;;+ }& F: T! t M1 A
- (defun ssx (/ olderr)
0 B0 I1 M- `. K - (gc) ; close any sel-sets
! h* L' [/ B. e( C - (setq olderr *error* 2 o8 V* e* y: i1 y6 K L9 B u
- *error* ssx_er
8 o* M4 G/ A/ f - )
- s. `# |( A: G5 j2 e - (setq fltr (ssx_fe))
# R& [, g; E' c/ \( W( l - (ssx_gf fltr)
& p9 R! k, k% t F8 p! ^! ~* ` - (if (= flexvar 1)
, q# M7 s" D* w3 Y: K* M - (progn
% _4 C5 `4 x9 \, b' k% I. Z4 ` - (prompt "\n \n \nNow select the required EDIT command and (P)revious.")6 ~! n' {0 W; |: h+ H9 S8 t4 [9 Q
- (flexmnu "EDIT")0 U% |$ Q4 T. J
- )
' A+ M% D( l. ?& D% c, z - (command "p")2 z4 m* H& |! ~
- ); G5 f& f" G4 f( M0 z6 U9 X
- (princ)1 G% F4 M. i& c+ {- G
- )1 e% ] i0 ?2 J( t7 U
- ;;;
4 N: y. g6 \+ } - ;;; Build the filter list up by picking, selecting an item to add,; x1 S9 H7 `6 B7 l( k1 ^+ z/ B
- ;;; or remove an item from the list by selecting it and pressing RETURN.
4 U2 N0 q/ R D* U/ S* t! A - ;;;& [, Y* J8 S6 ^
- ;;; ssx_gf == SSX_Get_Filters
0 f' C) B7 S: u* F - ;;;, f5 r6 y# v2 \1 j3 @. {( ]# _
- (defun ssx_gf (f1 / t1 t2 t3 f1 f2)- m$ F: j0 D9 P+ q, n. ]
- (while ) O1 J0 s1 V9 u* M
- (progn
4 S0 B! R9 M- ` ~' h# [# @ - (flexmnu "SSX"); f9 \; O0 J1 R1 @. H/ X S [
- (cond (f1 (prompt "\nFilter: ") (prin1 f1)))3 S: o9 A/ g6 e4 H
- (initget 8 v# X; i L& B2 _
- "Block Color Entity Flag LAyer LType Pick Style Thickness Vector")
" Y8 P( a6 Z* a' J2 o) z2 J - (setq t1 (getkword (strcat
# P3 Y& @0 a5 s6 I) y7 c - "\n>>Block name/Color/Entity/Flag/"" z% R3 c5 U/ W$ u: I
- "LAyer/LType/Pick/Style/Thickness/Vector: "))) ; {' K3 h: O$ Y
- )
# \/ s4 e; S. W! `) @( L - (setq t2
2 x0 ^; L( _1 K# [ - (cond
6 a% t, m) m! ^) Y* B# t+ G - ((eq t1 "Block") 2) ((eq t1 "Color") 62)
9 B6 V' c3 t% k" g! \! E - ((eq t1 "Entity") 0) ((eq t1 "LAyer") 8)! I3 B; P$ S% B2 m# ?- f
- ((eq t1 "LType") 6) ((eq t1 "Style") 7)
& G+ r/ b5 `7 ~, P1 r" |2 S: g - ((eq t1 "Thickness") 39) ((eq t1 "Flag" ) 66)
6 q% e) q8 }3 X: \ - ((eq t1 "Vector") 210)$ }* T% Q1 b9 ]" ` Q$ u4 ]
- (T t1)
6 b* v+ J& Q5 H4 c7 i3 m - )
2 c/ X, L) Y: ]2 x) g( O - )( a( i/ [; P5 m9 S# `% @6 {$ b
- (setq t3
$ l9 c+ v5 J; K! F1 }% f - (cond
+ ^- C4 i K- D% R5 ^4 g - ((= t2 2)( R5 s# m4 B p3 I: y2 L
- (if (= flexvar gtads 1)
- T' v0 `8 }" F9 W2 {+ m7 V - (progn
- Y! K- X3 q6 Z& x4 b& I0 J8 O; T* r2 y# s - (prompt "\n>>Block name to add/<RETURN to remove>: ")
7 n% e$ N' N3 `% Z# ^( S: i - (gttable "BLOCK")
) m( o& {6 @5 @( ~ - )
' k. l+ i; m" U- ?1 l - (getstring "\n>>Block name to add/<RETURN to remove>: ")/ E& }* R& Q1 _; \4 C
- )' l; `3 I3 R8 ~' O! `
- )# }" B# x7 u3 d
- ((= t2 62) (initget 4 "?")3 {! H4 F" }1 N: A, V T
- (cond' V1 P( @% s" S& @1 R# ]5 E
- ((or (eq (setq t3 (getint
3 l- C0 T* ^! l* S! @ - "\n>>Color number to add/?/<RETURN to remove>: ")) "?")
3 }& R2 k& S) i8 ]7 m - (> t3 256))
2 t) s. R* ` ^9 R0 @; d - (ssx_pc) ; Print color values.
( }& x# c4 ?, t. l2 S - nil* e& \# ]. N; C2 H- C
- )" s! P. _1 d& b$ v$ A* t" Z
- (T
' A% }. S6 y. G0 V/ F2 A - t3 ; Return t3.2 {6 l* L' ?, ?; Q1 O
- )4 y! i( ~' L2 D$ O8 {6 d
- )
. T3 G: i5 C5 V( o+ \8 m2 s - )7 u1 V6 O/ x3 D; _8 D- i- q5 |9 f9 @
- ((= t2 0) (getstring "\n>>Entity type to add/<RETURN to remove>: "))% ], t7 t. c1 N& k7 _
- ((= t2 8)
& {9 |1 U* t8 J, } J; A - (if (= flexvar gtads 1)+ h: L. F1 H8 a6 W/ D
- (progn9 f2 a! H" Y' C
- (prompt "\n>>Layer name to add/<RETURN to remove>: ")$ ~6 i6 ^' G H, R" |/ T
- (gttable "LAYER")
% w L6 N4 s9 q* G, g3 E a2 N - )
9 r3 Y; Z; k7 v, E$ ]5 V5 v) D9 F - (getstring "\n>>Layer name to add/<RETURN to remove>: ")
6 a5 D) i, z0 J3 V4 { - )1 U8 z; t" I; g# \; B1 e
- )
) _: g3 P( _6 j" B7 e - ((= t2 6)
5 h8 U- ? @5 u; P" |' D! \7 n - (if (= flexvar gtads 1)
: O+ ~; X" Q7 n - (progn
, }' \* S' a, A! w$ Y. p - (prompt "\n>>Linetype name to add/<RETURN to remove>: ")
) Y& u$ `( j* n) V - (gttable "LTYPE")
! k0 i* Q5 |% r5 l" i3 M* ^6 c8 r0 l. t7 N - )- z8 y0 q9 ^6 i9 u" \& E) y
- (getstring "\n>>Linetype name to add/<RETURN to remove>: ")
7 y% b* V* x9 ^* x" w - )
/ g5 r. ?) J2 G9 q7 t9 A - )( _: g: K: G% y8 C L" d$ }5 E
- ((= t2 7)
, ^! w( l/ h# h# ~* u8 Q/ u - (if (= flexvar gtads 1)
1 u) f) m2 b! D - (progn
) v# O) h% ^0 ]4 A - (prompt "\n>>Text style name to add/<RETURN to remove>: ")
) V+ Y7 D7 n3 s5 y. f# \) [3 P - (gttable "STYLE")6 ^1 a5 ]5 P( R$ Q8 e, z0 i0 q# R
- ); w/ v( I' X# T* ~) B6 E
- (getstring "\n>>Text style name to add/<RETURN to remove>: ")
8 X4 C" K% S: c, n - )" {" W0 V+ K& s* d# A# W4 Y1 X' Y
- )6 u% B/ @, Y; m7 ?8 N
- ((= t2 39)3 q9 e1 `8 u) _+ @
- (prompt "\n>>Thickness to add/<RETURN to remove>: ")
. @- r8 E9 C& H) ^: L/ [ - (if(= flexvar gtads 1)(gtfnum"Thickness to add:")(getreal))
5 z. J" I% o7 W6 }* n8 ^ - )! c; Q, s* {- x) {4 t# a+ m$ X
- ((= t2 66) (if (assoc 66 f1) nil 1))5 {+ {3 s0 r% F' y$ Y/ F
- ((= t2 210)
0 E8 K7 M3 t. `, C - (getpoint "\n>>Extrusion Vector to add/<RETURN to remove>: ")# X. T# r6 D! j# D2 i$ w8 \
- )
' L! `# |3 d. @) Y% E - (T nil)
; o0 P9 B% s; U9 c* J& b* P9 l7 z - )% S4 ^ Z" c+ n$ W* u+ f
- )" W: k! D4 v; v' l' y) ]
- (cond* Q4 k, Y# S# }
- ((= t2 "Pick") (setq f1 (ssx_fe) t2 nil)) ; get entity: n+ a+ k( W* k u8 m
- ((and f1 (assoc t2 f1)) ; already in the list# ^+ Q1 T( e T7 Y
- (if (and t3 (/= t3 ""))3 E( P' I1 g/ `4 t5 ?3 O
- ;; Replace with a new value... 2 H5 s( ] I9 S) C( `$ `# \# \
- (setq f1 (subst (cons t2 t3) (assoc t2 f1) f1))
, k6 v0 Y( k/ O6 e O. A$ ^ - ;; Remove it from filter list...% H9 m7 ^$ i! V) y- M
- (setq f1 (ssx_re (assoc t2 f1) f1))
1 D* O, R, `7 p& R1 R! L' l - )
! a/ y! _, I! G i+ {+ Y2 H/ Q" b% i - ). C1 ^+ c ?* C' ?0 Q$ ?
- ((and t3 (/= t3 ""))
( ^: U$ r+ G4 @8 O# L* W$ F - (setq f1 (cons (cons t2 t3) f1))
|! X1 ?, n9 F9 C; N, c/ T3 G0 D - )9 Z1 o9 U8 v: J* o5 ^# Z$ f; Z
- (T nil)
0 e/ r4 ]! t" k( h {% p3 W - )
7 y% }3 e# _" T8 M3 c: w, c1 U - )
, m; ]* O8 x& L2 \& _ - (if f1 (setq f2 (ssget "x" f1)))
, ^: M% a8 D4 q0 ?1 a - (setq *error* olderr)/ [3 @& x& ^, H! P' E9 }
- (if (and f1 f2)
; q9 O0 t2 ^0 g5 V1 B, Z% C$ @0 z& | - (progn3 \, e0 Y) e$ b% b. Y
- (princ (strcat "\n" (itoa (sslength f2)) " found. "))
' g$ \/ r7 P3 i- _ - f2 ; o5 u/ N+ t) [8 f/ J- J& o
- ): p* }- J( _) |& J
- (progn (princ "\n0 found.") (prin1))
% b/ R0 r7 E' O7 ^ _ - ): Y; K# T' Y# F# @1 y# Y8 J, m- c! p
- )- ^5 V+ Z' D7 M# E8 F
- ;;;: y: h) V: B# Y
- ;;; Print the standard color assignments.
+ {# f% V/ v; q# Y! B+ f - ;;;3 m# ?7 H3 Y; p1 e4 ?
- ;;;/ m9 w% w2 w; k+ M% w. c' }; d
- (defun ssx_pc ()4 [, {! A+ |1 T# C
- (if textpage (textpage) (textscr))- ~2 E3 s" D0 i# G( \; N* J) I* \! v
- (princ "\n ")
5 m! L% w- H/ A5 D5 J( B3 i6 } - (princ "\n Color number | Standard meaning ")# k2 q# x0 }' X
- (princ "\n ________________|____________________")
! V/ B, k) H3 H, W6 p - (princ "\n | "), h M) H8 ~) {" y( [
- (princ "\n 0 | <BYBLOCK> ")
. F, f) S5 U0 k. X' M4 j - (princ "\n 1 | Red ")
6 P0 A. v; h3 Q/ y3 d - (princ "\n 2 | Yellow ")
5 m. a* R% {: _ - (princ "\n 3 | Green ")( P- V! C/ d* Q3 T T F
- (princ "\n 4 | Cyan ")
( ]4 ^* w9 {+ p0 m - (princ "\n 5 | Blue ")
1 @) r( F% R. h$ ~8 w w" r/ S - (princ "\n 6 | Magenta ")' L9 G* n7 a8 ]! ~! O! L6 {8 i
- (princ "\n 7 | White ")" J1 }" ^9 c* D
- (princ "\n 8...255 | -Varies- ")# A/ D& E5 K0 \9 U6 U2 S5 T
- (princ "\n 256 | <BYLAYER> "): I; J: a' N8 D+ x; O
- (princ "\n \n\n\n")2 p1 }; |6 y" ?2 I+ t1 a1 v
- )* E' ?( r7 \9 v0 }, q
- ;;;/ M. S2 x8 u/ W8 y
- ;;; C: function definition.0 c% G# ], M, `( F) R; S8 q
- ;;;% z: f) l: i/ ^5 S
- (defun c:ssx () (ssx)(princ))
$ N# ] l6 I: [' W' n) g5 T - (princ "\n\tType \"ssx\" at a Command: prompt or ")* g0 P. ]; P2 P) l
- (princ "\n\t(ssx) at any object selection prompt. ")( h5 p5 c) I3 O
- (princ). ]- o3 l. Z$ Y* d' x9 o
3 e1 x9 |( L' R" _. O- ;;;--------------------------------------------------------------------------; j0 M G! z4 r# \4 O" }
- ;;;--------------------------------------------------------------------------;
4 v4 h+ W; a: F1 b; j7 j0 y - ;;;--------------------------------------------------------------------------;
! s4 S7 y0 d; R( f: b5 Q - (defun S::STARTUP ()
5 K, S2 u+ w9 E4 _: N - (setvar "cmdecho" 0)# l$ D* E7 v" k. u3 |8 Y: |9 [% J
- (setvar "cmdecho" 1)
R2 P# T+ k# Y - (setvar "LTSCALE" 10): G( H/ h" g: ]: z/ a
' G0 S2 |" E* b* H! e5 z- ;(command "_load" "chenKH.fas")
" u; h) r& p v- a* H5 G! z - ;(command "_load" "ctcot.fas")2 V# G4 D9 I3 d; u1 D! K6 C
- ;(command "_load" "damdoc.fas"): s1 Q6 V1 T% e
- ;(command "_load" "ghichu.fas")
7 h) }' E: {8 ]" U U; i8 l1 Y - ;(command "_load" "hamtutao.lsp")
8 P) `/ T& k% s - ;(command "_load" "KHOITAO.fas")8 o1 s3 B) a8 _8 B/ g. }/ A) F, U
- ;(command "_load" "KHthep.fas")2 Z% @# q$ _; x( |( A6 I
- ;(command "_load" "mbmong.dcl")) \ g$ C# t$ z
- ;(command "_load" "mbmong.fas")
8 S- A7 h6 J% P' f9 f+ H - ;(command "_load" "mccot.fas")
& s0 l1 g) o; L% Z0 P - ;(command "_load" "mcdam.fas")( f. I3 B8 \8 I: }' f6 ]' p
- ;(command "_load" "mcmong1.dcl")' j4 I& O1 U' h, ]; j8 [: r
- ;(command "_load" "mcmong1.fas")
6 y- \0 p" V% e6 ?$ ?, F' g - ;(command "_load" "mcmong2.dcl")& ?1 X* l/ q) T! h5 u. s0 P
- ;(command "_load" "mcmong2.fas"); z6 w: X) \0 k% x) C) r4 Q
- ;(command "_load" "mcmong3.dcl")
* z+ o- n/ ^: J( D/ ^ l) Z - ;(command "_load" "mcmong3.fas")! K0 |( N- E* b2 o5 c1 s0 T
- ;(command "_load" "mcsan.fas")! I, T" l2 w0 D) O1 V5 |; z8 N
- ;(command "_load" "thepdai.fas")2 T( |! w9 S& g/ X% L. W) R
- ;(command "_load" "thepdoc.fas")2 f: g7 y9 W7 O# j
- ;(command "_load" "thepmb.fas")- i" J$ t+ F. a0 f) x
- ;(command "_load" "thepphbo.fas")
( N [. J# K4 F! D0 T9 V4 N$ V - (command "_script" "thongso.scr")
2 ~5 l) J: Q$ M. k" ^7 X; } - ;(command "_load" "thongso1.dcl")
7 q0 P0 h- o4 B3 w4 a* p& x - ;(command "_load" "thongso1.fas")( q9 F' |+ @0 n {+ d* F- \
- ;(command "_load" "thongso2.dcl")
- B+ v1 ~! C: O) t q - ;(command "_load" "thongso2.fas")
- E4 z3 Y% J# ]3 ~ - ;(command "_load" "tietdien.fas")
; I1 y9 s! ]% R$ g& i5 a( D - ;(command "_load" "vehan.fas")
' q" M& k5 S3 j8 _8 W4 q' K - (command "_load" "phamDuy782006_TKT.lsp")2 I y9 i. Y$ F; L1 |* Z
- (command "_load" "phamduy782006ganhtd.lsp")
1 P+ i4 Q0 H! G. `. j" a! J - (command "_load" "phamduy782006ganhtds.lsp")- W* ?( Z$ e e
- (command "_load" "phamduy782006htd.dcl")
7 j( U' n: L" T# Z" V( I2 Y - (princ)
( g) L: M3 f8 M" x+ _5 S* G - )
) v$ L+ P3 G0 ]( E, y% W4 D
7 t7 H. |6 j* I U8 L- ;; Silent load.) L: m# T4 U3 S: }2 u/ j
- (princ)
; \ }" I5 A: ^4 d) c
& @. B4 c/ l$ ^) ^$ X- 8 H. r* i0 R2 x
- ;; Silent load for the Express Tools.) c$ f/ R- K! f- V |9 N
- ;; Altering this line will affect Express Tools functionality
; S( o' X$ v! H2 g' O) p8 k - (load "acettest.fas" (princ))9 ~! m7 e% k0 K* [/ Q4 s% M
- �32
Sao chép mã 0 }" g, ^0 ~: C( b$ t: W
00st Cách Thêm Menu & Lisp Vẽ & Fonts Chữ mở Gõ Chữ Administrator để Gõ
0 n2 {9 x O, s: e |
|