Đến nội dung


Hình ảnh
* * * - - 2 Bình chọn

Viết Lisp theo yêu cầu


  • Chủ đề bị khóa Chủ đề bị khóa
2780 replies to this topic

#1021 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1359 (rất tốt)

Đã gửi 29 August 2008 - 07:37 AM

làm thế nào để mờ đi một lệnh trong một menu.

ví dụ: làm mờ lệnh LINE trong menu Draw

-Nếu muốn làm 1 mục nào đó mờ ngay từ khi vừa khởi động cad thì thêm dấu ~ tại vị trí như đaon5 dưới đây.
[--]
ID_luu [~Luu lai thu vien]^C^C^C_luutvnd
ID_nhap [~Cap nhat thu vien]^C^C^C_capnhattvnd
ID_gioithieu [~Gioi thieu]^C^C^C_foryou lgoduyfy.sld;
[--]

-Muốn can thiệp cho mờ đi bằng dòng lệnh thì làm như sau:
(MENUCMD "Gtvnd.ID_nhap=~")
-Muốn hiện lại thì làm như sau:
(MENUCMD "Gtvnd.ID_nhap=")
  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#1022 meohoang

meohoang

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 811 Bài viết
Điểm đánh giá: 342 (khá)

Đã gửi 29 August 2008 - 08:00 AM

-Nếu muốn làm 1 mục nào đó mờ ngay từ khi vừa khởi động cad thì thêm dấu ~ tại vị trí như đaon5 dưới đây.
[--]
ID_luu [~Luu lai thu vien]^C^C^C_luutvnd
ID_nhap [~Cap nhat thu vien]^C^C^C_capnhattvnd
ID_gioithieu [~Gioi thieu]^C^C^C_foryou lgoduyfy.sld;
[--]

-Muốn can thiệp cho mờ đi bằng dòng lệnh thì làm như sau:
(MENUCMD "Gtvnd.ID_nhap=~")
-Muốn hiện lại thì làm như sau:
(MENUCMD "Gtvnd.ID_nhap=")

Uh hay ghê duy782006 ơi lâu nay mình ko biết chiện này. Xin cám ơn nhiều..... :lol:
  • 0

#1023 anhlylyhuynh

anhlylyhuynh

    biết zoom

  • Members
  • Pip
  • 12 Bài viết
Điểm đánh giá: 1 (bình thường)

Đã gửi 29 August 2008 - 10:42 AM


Các bạn ơi! giúp mình với
Nhờ các bác viết dùm đọan code vẽ mặt cắt ngang từ file bình đồ điểm là file cad có các điểm text 2d
Xin chân thành cám ơn!
  • 0

#1024 dh2xd

dh2xd

    biết vẽ pline

  • Members
  • PipPip
  • 65 Bài viết
Điểm đánh giá: 24 (tàm tạm)

Đã gửi 29 August 2008 - 11:38 AM

Bạn dùng lisp này, lệnh BRK:


;;;-------------------------------------------------------------
(defun ss2ent (ss / i Le e)
(setq i 0 Le nil)
(repeat (sslength ss)
(setq
e (ssname ss i)
Le (append Le (list e))
i (1+ i)
)
)
Le
)
;;;-------------------------------------------------------------
(defun DXF (code e) (cdr (assoc code (entget e))) )
;;;-------------------------------------------------------------
(defun get_inters(e1 e2 / p11 p12 p21 p22)
(setq
p11 (dxf 10 e1) p12 (dxf 11 e1)
p21 (dxf 10 e2) p22 (dxf 11 e2)
)
(inters p11 p12 p21 p22)
)
;;;-------------------------------------------------------------
(defun C:BRK( / ss L Lp e1 e2 p e)
(setq
ss (ssget '((0 . "LINE")))
L (ss2ent ss)
Lp nil
)
(foreach e1 L
(foreach e2 L
(setq p (get_inters e1 e2))
(if (and p (not (member p Lp))) (setq Lp (append Lp (list p))))
)
)
(foreach p Lp
(setq
ss (ssget "C" p p '((0 . "LINE")))
L (ss2ent ss)
)
(foreach e L (command "break" e p p))
)
(princ)
)
;;;-------------------------------------------------------------


bác nào có thể sửa lại để ta có thể chọn bất kỳ đối tượng nào như : arc, spline ko giới hạn ở line
  • 0

#1025 quangagf

quangagf

    biết zoom

  • Members
  • Pip
  • 10 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 30 August 2008 - 04:43 PM

Bạn có thể post yêu cầu về autolisp ở topic này.

nhờ bac Hoanh tìm dùm phần mềm nào thống kê được khối lượng vật tư điện trên bảng vẽ cad khg, e tìm trên diễn đàn mà khg thấy, cam ơn nhiều, em cần gấp lắm, e là dân điện, khg phải dân xây dựng
  • 0

#1026 MANHHUNGXDA

MANHHUNGXDA

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 926 Bài viết
Điểm đánh giá: 458 (tốt)

Đã gửi 30 August 2008 - 04:53 PM

Anh Hoành viết hộ em 1 đọạn lisp nhé:

chả là em có 1 thư viện cad, mỗi lần muốn goị 1 file lên thì phải gõ đường dẫn .
ta phải nhập vào 1 đường dẫn: Vidụ: "D:\THUVIEN\CADVIET\BANGHE2D" (có thể thay đổi)
Lisp này với mục đích là: lưu lại đường dẫn này (chắc là phải lưu vào regedit) . khi tắt cad đi, bật lại thì không phải nhập lại đường dẫn 1 lần nào nữa. mà có thể dùng các defun tiếp theo của file lisp, còn nếu phát hiện chưa có đương dân hiện hành thì lại hiên ra dòng: "duong dan la gì:"

Chờ hồi âm của các anh!
  • 0
Hãy ước cho trọn 1 ước mơ!

#1027 Snowman

Snowman

    biết lệnh mirror

  • Members
  • PipPipPip
  • 155 Bài viết
Điểm đánh giá: 90 (tàm tạm)

Đã gửi 30 August 2008 - 06:04 PM

Anh Hoành viết hộ em 1 đọạn lisp nhé:

chả là em có 1 thư viện cad, mỗi lần muốn goị 1 file lên thì phải gõ đường dẫn .
ta phải nhập vào 1 đường dẫn: Vidụ: "D:\THUVIEN\CADVIET\BANGHE2D" (có thể thay đổi)
Lisp này với mục đích là: lưu lại đường dẫn này (chắc là phải lưu vào regedit) . khi tắt cad đi, bật lại thì không phải nhập lại đường dẫn 1 lần nào nữa. mà có thể dùng các defun tiếp theo của file lisp, còn nếu phát hiện chưa có đương dân hiện hành thì lại hiên ra dòng: "duong dan la gì:"

Chờ hồi âm của các anh!

Tôi dùng một thuật toán khác là mỗi khi gọi một file (lần đầu) thì copy file đó vào một thư mục (support chẳng hạn).
Mỗi khi dùng lệnh, chỉ cần kiểm tra sự tồn tại của file đó trong thư viện, nếu chưa có thì lại copy vào.
Đây là đoạn code tôi dùng để load file dcl, bạn có thể sửa lại để dùng với thư việc cad
(setq	Supportdir (strcat (getvar "ROAMABLEROOTPREFIX") 
"support"
) ; [b]Bạn có thể thay supportdir bằng một folder cố định riêng,
;; nhưng ko hay lắm vì khi folder bị sửa tên là hỏng hết [/b]
DirDCL (strcat supportdir "\\DCLinfor.DCL") ; [b]tên file có thể đưa vào một biến nào đó
;;(chẳng hạn blockname mỗi khi insert)[/b]
)
(if (= nil (findfile DirDCL))
(progn
(setq DirDCL1 (getfiled "Chon file DCL"
""
"dcl" ; [b]Tại đây thay bằng đuôi DWG[/b]
8
)
)
(vl-file-copy DirDCL1 DirDCL) ;(vl-file-delete DirDCL) [b]- Hàm này dùng khi muốn xoá file khỏi thư viện[/b]
)
)

  • 0

. - ' * ' - .. - ... "Sống trong đời sống cần có một tấm lòng..." . - ' * ' - .. -
-----------------------------------------------------------------------------------

Hình đã gửi Hình đã gửi


#1028 tkkt04d1

tkkt04d1

    biết zoom

  • Members
  • Pip
  • 11 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 01 September 2008 - 08:50 AM

bác nào có cái lisp tính Trung bình cộng các số (>2 số) cho e dowload với.bác Nguyễn Hoành ra tay jiúp đàn em với
  • 0

#1029 Nguyen Hoanh

Nguyen Hoanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 4105 Bài viết
Điểm đánh giá: 4495 (đỉnh cao)

Đã gửi 01 September 2008 - 11:12 AM

bác nào có cái lisp tính Trung bình cộng các số (>2 số) cho e dowload với.bác Nguyễn Hoành ra tay jiúp đàn em với

bạn dùng lệnh CAL để tính.
  • 0

#1030 makhongbietnoi

makhongbietnoi

    biết vẽ point

  • Members
  • PipPip
  • 95 Bài viết
Điểm đánh giá: 21 (tàm tạm)

Đã gửi 01 September 2008 - 12:07 PM

Mong các bác giúp đỡ tôi 1 lisp như sau:
Tôi có 1 dãy các Dtext khác nhau.(như bản vẽ Up lên)
Giá trị của Dtext có 2 dãy số khác nhau cách nhau bởi dấu cách.(Đó chính là toạ độ X và Y của các điểm)
Tôi muốn tách Dtext đó thành 2 Dtext khác nhau mà giá trị của mỗi Dtext chính là 1 dãy số trong Dtext ban đầu.(tức là lấy riêng ra toạ độ X và Y trong dãy đó).
Cảm ơn rất nhiều.
http://www.cadviet.c...es/Drawing3.rar
  • 0

#1031 Snowman

Snowman

    biết lệnh mirror

  • Members
  • PipPipPip
  • 155 Bài viết
Điểm đánh giá: 90 (tàm tạm)

Đã gửi 01 September 2008 - 12:48 PM

bác nào có cái lisp tính Trung bình cộng các số (>2 số) cho e dowload với.bác Nguyễn Hoành ra tay jiúp đàn em với

Bạn dùng đoạn code sau, lệnh AV, yêu cầu chọn nhiều text và cuối cùng chọn 1 text để ghi kết quả
(defun myerror (s)
(cond
((= s "quit / exit abort") (princ))
((/= s "Function cancelled") (princ (strcat "\nError: " s)))
)
(setvar "cmdecho" CMD) ; Restore saved modes
(setvar "osmode" OSM)
(setq *error* OLDERR) ; Restore old *error* handler
(princ)
)

(defun bocchu (ss1 c) (setq ob (entget (ssname ss1 c))) (setq ts (assoc 1 ob)) (setq a (cdr ts)))
(defun sothanhchu (num) (rtos num 2 2))
(defun thaychu (Ob newstr) (setq txtstr (assoc 1 Ob)) (setq newstr (cons 1 newstr)) (entmod (subst newstr txtstr Ob)))
(defun chonchu (dongnhac) (prompt dongnhac) (ssget '((-4 . "<OR") (0 . "text") (0 . "mtext") (-4 . "OR>"))))
(defun chon (str) (ssget '((cons(0 str)))))
(defun bamchon(st) (entget (car (entsel st))))
(defun bocdt (ss1 c) (entget (ssname ss1 c)))

(defun c:av ()
(command "undo" "mark")
(setq ss1 (chonchu "\nChon cac so can tinh trung binh ...")
c 0
total 0
tolnum (sslength ss1)
)
(while (< c (sslength ss1))
(setq num (atof (bocchu ss1 c))
total (+ num total)
)
(setq c (+ 1 c))
)

(if (/= tolnum 0)
(setq average (/ total tolnum))
(setq average "error div 0")
)
(setq ss2 (chonchu "\nChon text chua kq ..."))
(setq ob (bocdt ss2 0))
(setq st (sothanhchu average))

(thaychu ob st)

)


  • 1

. - ' * ' - .. - ... "Sống trong đời sống cần có một tấm lòng..." . - ' * ' - .. -
-----------------------------------------------------------------------------------

Hình đã gửi Hình đã gửi


#1032 nataca

nataca

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 712 Bài viết
Điểm đánh giá: 553 (tốt)

Đã gửi 01 September 2008 - 04:29 PM

Mong các bác giúp đỡ tôi 1 lisp như sau:
Tôi có 1 dãy các Dtext khác nhau.(như bản vẽ Up lên)
Giá trị của Dtext có 2 dãy số khác nhau cách nhau bởi dấu cách.(Đó chính là toạ độ X và Y của các điểm)
Tôi muốn tách Dtext đó thành 2 Dtext khác nhau mà giá trị của mỗi Dtext chính là 1 dãy số trong Dtext ban đầu.(tức là lấy riêng ra toạ độ X và Y trong dãy đó).
Cảm ơn rất nhiều.
http://www.cadviet.c...es/Drawing3.rar

Bạn hãy chỉ rõ hộ là từ đâu bạn có được Dtext có toạ độ X và Y như thế. Và bạn muốn tách ra để làm gì? Người viết lisp không phải là cái máy thi hành bạn ạ. Biết đâu khi bạn nói ra ý nghĩa của bài toán của bạn thì chúng tôi lại giúp bạn giải quyết theo cách khác nhanh hơn. Tránh trường hợp viết lisp xong nhưng cũng chẳng giải quyết được việc gì. Cái bạn yêu cầu hoàn toàn làm được nhưng bạn hãy nói rõ hơn ý nghĩa bài toán bạn đưa ra nhé. Đồng ý không?
  • 0

#1033 makhongbietnoi

makhongbietnoi

    biết vẽ point

  • Members
  • PipPip
  • 95 Bài viết
Điểm đánh giá: 21 (tàm tạm)

Đã gửi 01 September 2008 - 05:13 PM

Cảm ơn bạn đã quan tâm. Khi thiết kế bản vẽ thi công, mình phải định vị các điểm đầu cọc. Mình vẽ Pline qua tất cả các điểm đầu cọc đó thôi, sau đó dùng list thì sẽ được Dtext đó. Mình phải thống kê 1 bảng toạ độ, X,Y riêng của các cọc. Do đó mình mới đề nghị được giúp đỡ.
  • 0

#1034 Snowman

Snowman

    biết lệnh mirror

  • Members
  • PipPipPip
  • 155 Bài viết
Điểm đánh giá: 90 (tàm tạm)

Đã gửi 01 September 2008 - 06:25 PM

Cảm ơn bạn đã quan tâm. Khi thiết kế bản vẽ thi công, mình phải định vị các điểm đầu cọc. Mình vẽ Pline qua tất cả các điểm đầu cọc đó thôi, sau đó dùng list thì sẽ được Dtext đó. Mình phải thống kê 1 bảng toạ độ, X,Y riêng của các cọc. Do đó mình mới đề nghị được giúp đỡ.

Tôi có lisp xuất toạ độ các block và vẽ thành bảng toạ độ rồi xuất ra excel.
Nếu tại vị trí các cọc có chèn một block thuộc tính thì có thể dùng lệnh BID để chọn tất cả các block, với cách dùng block thuộc tính để chèn và đánh số tại vị trí cọc thì lệnh sẽ tự động sắp xếp thứ tự các điểm theo thứ tự tên cọc, còn ko bảng toạ độ vẽ ra sẽ ko theo thứ tự. Bạn có thể chỉnh sửa với bảng excel xuất ra rồi paste lại vào CAD.
Bạn có thể pick từng vị trí cọc một và đặt tên cọc tuỳ ý bằng lệnh XID (chọn prefix tên cọc, thứ tự bắt đầu, ... nhấn enter để kết thúc pick điểm và vẽ bảng, xuất file.
http://www.cadviet.c...ort_texttmp.fas
  • 0

. - ' * ' - .. - ... "Sống trong đời sống cần có một tấm lòng..." . - ' * ' - .. -
-----------------------------------------------------------------------------------

Hình đã gửi Hình đã gửi


#1035 kts.ngocquan

kts.ngocquan

    biết vẽ ellipse

  • Members
  • PipPip
  • 59 Bài viết
Điểm đánh giá: 36 (tàm tạm)

Đã gửi 01 September 2008 - 10:47 PM

(DEFUN CREATELAYER(laname lacolor lalt);; Tao mot layer moi (tenlayer mauyer duongnetlayer)
(if (tblsearch "LAYER" laname);; Kiem tra layer da ton tai
(princ (strcat "Layer" laname " da ton tai")
(if (tblsearch "LTYPE" ltname);if linetype exsists
(command "._Layer" "_Make" laname "_Color" lacolor laname "_LT" ltname laname "")
(command "._Layer" "_Make" laname "_Color" lacolor laname "_LT" "Continuous" laname "")
)
)
)

============================== Tao ban ve moi ===========================
(Defun c:a4 (/)
(command "cmdecho" 0)
(command "units" "2" "0" "1" "0" "" "")
(Command "-linetype" "l" "center" "acad.lin" "" "")
(Command "-linetype" "l" "hidden" "acad.lin" "" "")
(Command "-layer" "n" "Defpoints" "c" "251" "Defpoints" "")
(Command "-layer" "n" "00 - MAX - 00" "c" "105" "00 - MAX - 00" "lw" "0.9" "00 - MAX - 00" "")
(Command "-layer" "n" "35 - Noi that" "c" "50" "35 - Noi that" "lw" "0.35" "35 - Noi that" "")
(Command "-layer" "n" "35 - Cat 1 (Tuong..)" "c" "53" "35 - Cat 1 (Tuong..)" "lw" "0.35" "35 - Cat 1 (Tuong..)" "")
(Command "-layer" "n" "25 - Cat 2 (Khuon..)" "c" "164" "25 - Cat 2 (Khuon..)" "lw" "0.25" "25 - Cat 2 (Khuon..)" "")
(Command "-layer" "n" "15 - Thay 1" "c" "137" "15 - Thay 1" "lw" "0.15" "15 - Thay 1" "")
(Command "-layer" "n" "15 - Thay 2" "c" "31" "15 - Thay 2" "lw" "0.15" "15 - Thay 2" "")
(Command "-layer" "n" "09- Thay 3" "c" "9" "09- Thay 3" "lw" "0.10" "09- Thay 3" "")
(Command "-layer" "n" "05- Thay 2" "c" "27" "05- Thay 2" "lw" "0.05" "05- Thay 2" "")
(Command "-layer" "n" "09 - Tim " "c" "119" "09 - Tim " "l" "center" "09 - Tim " "lw" "0.09" "09 - Tim " "")
(Command "-layer" "n" "05 - Mo 1" "c" "67" "05 - Mo 1" "lw" "0.05" "05 - Mo 1" "")
(Command "-layer" "n" "05 - Mo 2" "c" "8" "05 - Mo 2" "lw" "0.05" "05 - Mo 2" "")
(Command "-layer" "n" "05 - Mo 3" "c" "16" "05 - Mo 3" "lw" "0.05" "05 - Mo 3" "")
(Command "-layer" "n" "05 - Noi that" "c" "252" "05 - Noi that" "lw" "0.05" "05 - Noi that" "")
(Command "-layer" "n" "15 - Noi that" "c" "93" "15 - Noi that" "lw" "0.15" "15 - Noi that" "")
(Command "-layer" "n" "09 - Kich thuoc" "c" "47" "09 - Kich thuoc" "lw" "0.09" "09 - Kich thuoc" "")
(Command "-layer" "n" "05 - Khuat 1" "c" "242" "05 - Khuat 1" "l" "Dashed2" "05 - Khuat 1" "lw" "0.05" "05 - Khuat 1" "")
(Command "-layer" "n" "09 - Khuat 2" "c" "32" "09 - Khuat 2" "l" "Dashed" "09 - Khuat 2" "lw" "0.09" "09 - Khuat 2" "")
)

Nó đây ! Xin lỗi vì tôi đến muộn
Trong đó :a4 là tên lệnh
Sau "lw" là độ dày của nét khi in
Sơ sơ thế có j cứ hỏi nhé
  • 0

#1036 nataca

nataca

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 712 Bài viết
Điểm đánh giá: 553 (tốt)

Đã gửi 02 September 2008 - 03:12 AM

Cảm ơn bạn đã quan tâm. Khi thiết kế bản vẽ thi công, mình phải định vị các điểm đầu cọc. Mình vẽ Pline qua tất cả các điểm đầu cọc đó thôi, sau đó dùng list thì sẽ được Dtext đó. Mình phải thống kê 1 bảng toạ độ, X,Y riêng của các cọc. Do đó mình mới đề nghị được giúp đỡ.

Tức là bạn phải lọc các X= Y= Z=.... đi để được Dtext như hình vẽ phải ko? Không cần phải thế. Bạn chỉ cần vẽ đường Polyline qua các đầu cọc rồi đánh lệnh TDD ( khi ap lisp này vào) sau đó chọn đường polyline vừa vẽ và chọn text làm mẫu, điểm đặt kết quả. Lisp sẽ xuất cho bạn cột thứ nhất là thứ tự điểm, cột thứ 2 là toạ độ X của các điểm, cột thứ 3 là toạ độ Y của các điểm. Bạn có thể căn lại hàng cột bằng cách thay đổi một chút ở biến K1, K2, H. Hy vọng đúng ý bạn.

(defun C:TDD ( / ss ent Lx Ly Ltt dem Tmau Tmau1 Pchen Pchen1 H K1 K2)

(SAVE_MODE)
(INIT)
(princ "\n Chon duong Polyline")
(while (null (setq ss (ssget '((-4 . "<OR") (0 . "POLYLINE") (0 . "LWPOLYLINE") (-4 . "OR>"))))))
(setq ent (entget (ssname ss 0))
dem 0
)
(mapcar '(lambda (x)
(if (= (car x) 10)
(setq Lx (append Lx (list (cadr x)))
Ly (append Ly (list (caddr x)))
dem (1+ dem)
Ltt (append Ltt (list dem))
)
)
)
ent
)
(while (null (setq Tmau (CHONCHU "\n Chon text lam mau xuat ket qua"))))
(setq Tmau (entget (ssname Tmau 0)))

(while (null (setq Pchen (getpoint "\n Chon diem dat ket qua:"))))

(setq K1 (list (* (cdr(assoc 40 Tmau)) 3) 0.0 0.0)
K2 (list (* (cdr(assoc 40 Tmau)) 12) 0.0 0.0)
H (list 0.0 (* (cdr(assoc 40 Tmau)) 3) 0.0)
)
(setq Lst (List Ltt Lx Ly)
Lk (List (List 0.0 0.0 0.0) K1 K2)
)
(mapcar '(lambda (x y)

(setq Pchen1 (mapcar '+ Pchen y)
dem 0
)
(repeat (length x)
(setq Tmau (THAY_TEXT dem x Tmau)
Tmau1 (subst (cons 10 Pchen1) (assoc 10 Tmau) Tmau)
Pchen1 (mapcar '- Pchen1 H)
)
(entmake Tmau1)
(setq dem (1+ dem))
)
)
Lst
Lk
)
(DONE)
(RESTORE)
)
;;;==========================================================================
; HAM BAY LOI
(defun INIT ()
(setq OLD_ERROR *error*
*error* MYERROR
)
)

(defun MYERROR (errmsg)

(cond
( (= errmsg "quit / exit abort")
(princ)
)
( (/= errmsg "Function cancelled")
(princ (strcat "\n Co loi: " errmsg))
)
)

(command "Undo" "back")
(setvar "osmode" OLD_OSMODE)
(command "CECOLOR" OLD_CECOLOR)

(DONE)

(prompt "\n Da thuc hien ham *error*, Reset lai thiet lap ban dau")

)

(defun DONE ()
(if OLD_ERROR (setq *error* OLD_ERROR))
)

;;;----------------------------------------------------------------------
; HAM LUU VA TRA LAI CAC THONG SO BAN DAU
(defun SAVE_MODE()

(command "Undo" "Mark")
(command "UCS" "W" "")
(setq OLD_OSMODE (getvar "OSMODE"))
(setq OLD_CECOLOR (getvar "CECOLOR"))
(command "cmdecho" 0)
(vl-load-com)

)
(defun RESTORE()

;(command "Undo" "back")
(if OLD_OSMODE
(setvar "osmode" OLD_OSMODE)
)
(if OLD_CECOLOR
(command "CECOLOR" OLD_CECOLOR)
)
(command "cmdecho" 1)
(Grtext -1 "Lisp's written by Nataca - 0983.715.333")
)
;;;----------------------------------------------------------------------
(defun CHONCHU (dongnhac)

(prompt dongnhac)
(ssget
'((-4 . "<OR") (0 . "text") (0 . "mtext") (-4 . "OR>"))
)
)

;;;----------------------------------------------------------------------
(defun THAY_TEXT (stt LST ENT)
(cond ( (= (type (nth stt LST)) 'REAL)
(subst (cons 1 (rtos (nth stt LST) 2 3)) (assoc 1 ENT) ENT)
)
( (= (type (nth stt LST)) 'INT)
(subst (cons 1 (itoa (nth stt LST))) (assoc 1 ENT) ENT)
)
)
)

  • 0

#1037 nataca

nataca

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 712 Bài viết
Điểm đánh giá: 553 (tốt)

Đã gửi 02 September 2008 - 07:42 PM

bỞI VÌ NHIỀU LÚC CẦN ĐO 1 CÁI J ĐÓ (XEM ) RỒI XOÁ ĐI, NÊN XUẤT HIẸN Ý TƯỞNG ĐÓ,
mỞ RỘNG VẤN ĐỀ LÀ CHO ĐỐI TƯỢNG TỒN TẠI THEO 1 KHOẢNG THỜI GIAN
LIỆU CÓ THỰC HIỆN ĐUWỌC KHÔNG BÁC.

Tự động xoá sau 1 giây thì khó nhưng nếu chờ ấn Enter để xoá như thế này thì hoàn toàn làm được. Theo bạn có được không?

(defun C:DAS ()
(command "DIMALIGNED" pause pause pause)
(command "erase" "l" pause)
)

  • 0

#1038 Phiphi.

Phiphi.

    Chưa sử dụng CAD

  • Members
  • Pip
  • 3 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 02 September 2008 - 10:29 PM

Kính nhờ các Bác chỉ giúp cho.
PP đọc cả buổi mà vẩn chưa tìm được đoạn Lisp đang cần.
PP đang lập 1 một số bản vẽ sơ đồ các đường ống nước, gas trước nhà của cả 1 đoạn đường dài. Dựa vào khoảng cách trước mổi nhà để vẽ lại các đ/ố này. Khoảng cách thì khác nhau, mà ví trí điểm chọn trước mỗi nhà cũng không được thẳng hàng. Bản vẽ các line boundary mặt trước nhà đã có sẳn. Bây giờ chỉ cần vẽ các đ/ố và ghi lại khoảng cách như là 1.2B (tức là cách boundary trước nhà 1200mm-bản vẽ dùng đ/v mm) Bên dưới 1.2B sẽ còn ghi thêm độ sâu khác nhau thí dụ như 0.7D (=700mm)
Vẽ trong model với scale thật 1:1 nhưng sẽ dùng layout để in với scale 1:500 trong khổ giấy A1. (Text in ra cao 3.5mm-Text trong model cao 1750mm)
Nhờ các Bác viết giúp cho đoạn Lisp, chỉ cần chọn 1 điểm trước nhà, nhập khoảng cách (mm) thì sẽ vẽ được các line cách điểm chọn (vuông góc). (Nếu như tự động in text bên cạnh như được nhập ban đầu thì rất tốt)
Xin cám ơn trước.
  • 0

#1039 tien2005

tien2005

    biết lệnh properties

  • Members
  • PipPipPipPip
  • 257 Bài viết
Điểm đánh giá: 94 (tàm tạm)

Đã gửi 03 September 2008 - 12:04 AM

Kính nhờ các Bác chỉ giúp cho.
PP đọc cả buổi mà vẩn chưa tìm được đoạn Lisp đang cần.
PP đang lập 1 một số bản vẽ sơ đồ các đường ống nước, gas trước nhà của cả 1 đoạn đường dài. Dựa vào khoảng cách trước mổi nhà để vẽ lại các đ/ố này. Khoảng cách thì khác nhau, mà ví trí điểm chọn trước mỗi nhà cũng không được thẳng hàng. Bản vẽ các line boundary mặt trước nhà đã có sẳn. Bây giờ chỉ cần vẽ các đ/ố và ghi lại khoảng cách như là 1.2B (tức là cách boundary trước nhà 1200mm-bản vẽ dùng đ/v mm) Bên dưới 1.2B sẽ còn ghi thêm độ sâu khác nhau thí dụ như 0.7D (=700mm)
Vẽ trong model với scale thật 1:1 nhưng sẽ dùng layout để in với scale 1:500 trong khổ giấy A1. (Text in ra cao 3.5mm-Text trong model cao 1750mm)
Nhờ các Bác viết giúp cho đoạn Lisp, chỉ cần chọn 1 điểm trước nhà, nhập khoảng cách (mm) thì sẽ vẽ được các line cách điểm chọn (vuông góc). (Nếu như tự động in text bên cạnh như được nhập ban đầu thì rất tốt)
Xin cám ơn trước.



Bạn nên đưa bản vẽ mẫu lên rồi diễn giải trong bản vẽ luôn, như vậy sẽ dễ dàng giúp cho Bạn và người viết code cũng biết được các công đoạn làm như thế nào là tối ưu

@Phiphi: nick này hình như bên kếtcấu.com phải không?
  • 1

#1040 2008vie

2008vie

    biết zoom

  • Members
  • Pip
  • 14 Bài viết
Điểm đánh giá: 4 (bình thường)

Đã gửi 03 September 2008 - 02:18 PM

Chào các bác.
tôi có một yêu cầu nhờ các bác giúp.
Tôi muốn tạo một Block hay một đối tượng (như ký hiệu trục ).
Khi copy đối tượng này đi thì giá trị chứa trong đối tượng này tăng lên một đơn vị. VD trục 1 => trục 2.., ký tự A=>ký tự B.

Cám ơn trước nhé
Chờ tin các Bác
  • 0