Đến nội dung


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

Viết lisp theo yêu cầu [phần 2]


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

#3741 vbtxd06

vbtxd06

    biết vẽ ellipse

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

Đã gửi 25 June 2011 - 05:41 PM

Xin chào các anh cadviet. Em đang gặp 1 vướng mắc thế này mong các anh giúp đỡ em. File cad của em đang sử dụng Font VNI hết nhưng công ty lại sử dụng font Unicode không nên em phải bắt buộc chuyển qua font Unicode.Khi chuyển qua thì chữ ra tùm lum hết, vả lại cái symbol phi trong vni em nhấn \U+00DE còn gõ bên unicode là %%C bi loi symbol.Anh nào có lisp chuyển mã font nhanh mà không bị lỗi không.Xin cho em với. Xin cám ơn các anh!
  • 0

#3742 gasmanc

gasmanc

    biết vẽ line

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

Đã gửi 25 June 2011 - 10:13 PM

thế bác có cách nào làm trong nova ko chỉ cho em với .
em thường làm thủ công .


Một vài lệnh trong nova không biết bạn đã xài bao giờ chưa. Nếu bạn chưa xài thì mấy lệnh này có thể giúp bạn được trong công việc sửa tên cọc

1. Đầu tiên khi bạn chèn thêm cọc thì có 2 cách chèn cọc: chèn cọc trên Tuyến (đường mặt bằng) và chèn cọc trên Trắc dọc bằng lệnh CC
2. Sử dụng lệnh Sửa tên cọc STC để chỉ vào cọc cần sửa tên (là cái cọc mà bạn chèn thêm vào ấy) trên Tuyến
3. Sử dụng lệnh EDTD (hoặc lệnh tbb trong Nova 3.) để update lại tên cọc trên trắc dọc và EDTN để update lại tên cọc trên trắc ngang.

Nova đã lường trước trong thiết kế có bước chèn thêm cọc nên có tính năng này rồi. Nếu bạn không chèn cọc 1 cách thủ công thì hoàn toàn có thể thay đổi mọi thứ bằng lệnh Nova, hạn chế file Nova bị "chết"

hì. nếu như những điều mình vừa nói chưa đúng ý bạn thì đành sử dụng lisp vậy. ^^
  • 1

#3743 friendship293a

friendship293a

    biết lệnh erase

  • Members
  • PipPipPip
  • 102 Bài viết
Điểm đánh giá: -9 (bình thường)

Đã gửi 26 June 2011 - 10:46 AM

Bác nào giúp em giãn chữ theo hàng dọc này với. em dùng nova các điền cao độ thiết kế dày quá bác nào giúp e với
http://www.cadviet.c...o_hang_ngan.dwg
  • 0

#3744 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 26 June 2011 - 03:34 PM

Bác nào giúp em giãn chữ theo hàng dọc này với. em dùng nova các điền cao độ thiết kế dày quá bác nào giúp e với
http://www.cadviet.c...o_hang_ngan.dwg

Hề hề hề,
Bạn muốn nó gĩan ra sao???
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#3745 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 26 June 2011 - 04:52 PM

Nhân tiện cho em hỏi là biến nào lưu giữ đơn vị hiện hành của CAD ạ ?

Hề hề hề,
Bạn coi thử cái này xem có phải cái bạn cần không nhé:

INSUNITS System Variable
Concepts Procedures Reference

Type: Integer
Saved in: Drawing
Initial value: 1
Specifies a drawing-units value for automatic scaling of blocks or images dragged from DesignCenter™ and inserted into a drawing.
0 Unspecified (No units)
1 Inches
2 Feet
3 Miles
4 Millimeters
5 Centimeters
6 Meters
7 Kilometers
8 Microinches
9 Mils
10 Yards
11 Angstroms
12 Nanometers
13 Microns
14 Decimeters
15 Decameters
16 Hectometers
17 Gigameters
18 Astronomical Units
19 Light Years
20 Parsecs

Nó lấy từ Help của CAD đó bạn ạ.
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#3746 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 26 June 2011 - 07:01 PM

Xin lisp liên quan đến chương trình thống kê thép.
xin chào các ae cadviet, funnyzui muốn xin các bạn viết cho 1 cái lisp có thể quét chọn 1 lần nhiều đối tượng (là block_thuộc tính) để update lại các giá trị thuộc tính của nó, thay vì như hiện giờ mình phải pick từng đối tượng 1 để update lại các cây thép có sự thay đổi về chiều dài, số lượng cấu kiện,...



File cad bên dưới, có ghi rõ nội dung và hình ảnh minh họa:

thongkethep.dwg

File lisp của chương trình thống kê mà funnzyzui đang sử dụng:
http://www.cadviet.c...les/3/chinh.rar
thongke_3.lsp

Bài viết về lệnh TTB.vlx và lệnh SCK.vlx có liên quan:
http://www.cadviet.c...indpost&p=99749
http://www.cadviet.c...indpost&p=67668

Mong các ae trên diễn đàn bớt chút thời gian để nghiên cứu giúp. Nếu có thể nhanh chóng như lisp SCK.vlx của TUE_NV thì quá tốt.
Xin cám ơn các ae!

Hề hề hề,
Mấy cái vlx bác gửi thì bó tay rồi. Riêng về cái lisp thongke_3 mà bác gửi thì mình đã cố đọc, xong test thí không được do thiếu cái file THONGKE.DCL bác ạ.
Cái lisp này khá dài và không dễ để đọc. Tuy nhiên theo thiển ý của mình, nếu bác cung cấp đầy đủ các file có liên quan thì có thể sẽ giải quyết được vấn đề bạn đặt ra.
Hề hề hề, chúc bạn vui.....
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#3747 hakhoailang

hakhoailang

    biết lệnh rotate

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

Đã gửi 26 June 2011 - 08:45 PM

Một vài lệnh trong nova không biết bạn đã xài bao giờ chưa. Nếu bạn chưa xài thì mấy lệnh này có thể giúp bạn được trong công việc sửa tên cọc

1. Đầu tiên khi bạn chèn thêm cọc thì có 2 cách chèn cọc: chèn cọc trên Tuyến (đường mặt bằng) và chèn cọc trên Trắc dọc bằng lệnh CC
2. Sử dụng lệnh Sửa tên cọc STC để chỉ vào cọc cần sửa tên (là cái cọc mà bạn chèn thêm vào ấy) trên Tuyến
3. Sử dụng lệnh EDTD (hoặc lệnh tbb trong Nova 3.) để update lại tên cọc trên trắc dọc và EDTN để update lại tên cọc trên trắc ngang.

Nova đã lường trước trong thiết kế có bước chèn thêm cọc nên có tính năng này rồi. Nếu bạn không chèn cọc 1 cách thủ công thì hoàn toàn có thể thay đổi mọi thứ bằng lệnh Nova, hạn chế file Nova bị "chết"

hì. nếu như những điều mình vừa nói chưa đúng ý bạn thì đành sử dụng lisp vậy. ^^

thank bác nhiều ơi là nhiều .
có lẽ bác là người trong ngành .
bác có thể cho em xin cái nick yahoo để em có thể trao đổi và học hỏi bác thêm dc ko bác .
  • 0

#3748 gasmanc

gasmanc

    biết vẽ line

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

Đã gửi 26 June 2011 - 10:44 PM

thank bác nhiều ơi là nhiều .
có lẽ bác là người trong ngành .
bác có thể cho em xin cái nick yahoo để em có thể trao đổi và học hỏi bác thêm dc ko bác .

okê thôi, dù mình cũng gà. ^^
nick YM: nddung_egr;
có gì thì pm nhé.
  • 0

#3749 hakhoailang

hakhoailang

    biết lệnh rotate

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

Đã gửi 26 June 2011 - 10:55 PM

Hề hề hề,
Muốn nó hiện lại thì dùng:
(acet-ss-visible (acet-ss-remove (ssget "X" (list (cons 0 "*TEXT") (cons 1 (strcat t1 "*")))) (ssget "X" (list (cons 8 la)))) 0)
Với điều kiện nó được thay đúng vào dòng code :
(acet-ss-visible (acet-ss-remove (ssget "X" (list (cons 0 "*TEXT") (cons 1 (strcat t1 "*")))) (ssget "X" (list (cons 8 la)))) 1)
của cái lisp ẩn đối tượng . Nhớ đổi tên lisp và tên lệnh để khỏi nhầm lẫn nghen (tỷ như tên lisp là hidtcola.lsp, tên lệnh là hitxt chẳng hạn)
Hề hề hề,

Việc quy hoạch lại bản vẽ của bạn là do bạn chứ có dính chi tới thằng Nova hay Noviec đâu. Tỷ như sau khi chạy Nova xong bạn sẽ có hàng loạt các trắc ngang, bạn chỉ cần sắp xếp các trắc ngang này theo đúng một trật tự nào đó, từ trên xuống dưới hay từ trái sang phải chẳng hạn, đúng với cái thứ thự sắp xếp của các vị trí cọc trên trắc dọc là OK mà.
Với các vị trí cọc mà bạn không có trắc ngang thì xóa béng cái tên của cọc đó khỏi trắc dọc hoặc ẩn nó đi.
Như vậy mình nghĩ là không quá khó với bạn và mình mới có thể giúp bạn làm cái lisp đổi tên cọc mà khỏi phải chọn thủ công được.
Hề hề hề,

Việc kết hợp các lisp thì nào có khó chi. Bạn chỉ cần copy các lisp đó vào cùng một file *.lsp nào đó mà bạn khoái là Ok. Có điều bạn phải nhớ tên các lệnh, kẻo mà nó nhầm lẫn lung tung là mệt đấy. Để riêng vậy mà hay, cần dùng thằng nào thì load thằng đó và chỉ cần mở nó ra là biết tên lệnh ngay, khỏi phải kiếm tìm nhọc công.
Hề hề hề,..

em cho nó nằm theo 1 hàng dọc .
các trắc ngang chỉ nằm trên một hàng dọc thôi .
bác giúp em cái để em ko phải kich thủ công bác à .
tên các cọc nằm trên trắc dọc thì nó nằm ngang .
còn các tên cọc nằm trên trắc ngang thì nó nằm dọc .
để em gửi cái bản vẽ lên là bác biết ngay ấy mà.
bác giúp hộ em cái .
em vừa đi du lịch với công ty mà đến khách sạn là em nhảy vào xem bài bác đã trả lời chưa .
đồng nghiệp nó bảo hâm đi du lịch mà vẫn nghĩ đến công việc.
thôi thì hâm cũng dc .
có chân thành mới dc giúp đỡ mà bác .
thank bác nhiều.
bác viết hộ em cái líp nhé .
bản vẽ em nó đây .
http://www.cadviet.c...km8in__copy.dwg
  • 0

#3750 haintwru

haintwru

    Chưa sử dụng CAD

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

Đã gửi 27 June 2011 - 09:23 AM

em có 1 đoạn lisp

(defun c:bg (/)
(setvar "cmdecho" 1)
(setvar "cmdecho" 0)
(command "undo" "be")
(setq osmode (getvar "osmode"))
(setvar "edgemode" 0)

(setvar "osmode" 32)
(setq ss (entsel))
(setq diem (cadr ss))
(setq pt (getPoint "\nChon diem be gay:"))
(command "break" ss "f" pt pt)

(setvar "osmode" osmode)
(command "undo" "e")
)

các anh giúp em sửa nó để nó có thể chia đuợc nhiều đuờng giao với 1 đường khác. mình chỉ cần cọn 1 đường làm giao cắt và các đường khác khi cát nó đều bị chia ra tại điểm giao. các anh giúp em nhanh nhé :)
  • -1

#3751 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 27 June 2011 - 09:33 AM

em có 1 đoạn lisp

các anh giúp em sửa nó để nó có thể chia đuợc nhiều đuờng giao với 1 đường khác. mình chỉ cần cọn 1 đường làm giao cắt và các đường khác khi cát nó đều bị chia ra tại điểm giao. các anh giúp em nhanh nhé :)

-Bạn hỏi 1 vấn đề ở 2 topic là sai rồi nhé.
-Tìm lisp bẻ đối tượng tại giao điểm của bác giabach mà dùng hỉ.
  • 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


#3752 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 27 June 2011 - 07:42 PM

em cho nó nằm theo 1 hàng dọc .
các trắc ngang chỉ nằm trên một hàng dọc thôi .
bác giúp em cái để em ko phải kich thủ công bác à .
tên các cọc nằm trên trắc dọc thì nó nằm ngang .
còn các tên cọc nằm trên trắc ngang thì nó nằm dọc .
để em gửi cái bản vẽ lên là bác biết ngay ấy mà.
bác giúp hộ em cái .
em vừa đi du lịch với công ty mà đến khách sạn là em nhảy vào xem bài bác đã trả lời chưa .
đồng nghiệp nó bảo hâm đi du lịch mà vẫn nghĩ đến công việc.
thôi thì hâm cũng dc .
có chân thành mới dc giúp đỡ mà bác .
thank bác nhiều.
bác viết hộ em cái líp nhé .
bản vẽ em nó đây .
http://www.cadviet.c...km8in__copy.dwg

Hề hề hề,
Nó đây nè. Dùng thử coi nhé. Chú ý rằng khi quét vùng chọn tren trắc dọc, chớ có ôm nhầm mấy em ở khu lý trình vào nghen. Vì các em này có trùng tên, trùng layer và cả trùng màu nữa nên mình chưa loại được. nếu tách được mấy em này qua lớp khác thì tuyệt hảo luôn.
Khi quét vùng chọn các trăc ngang, lưu ý sao cho cái trắc ngang đầu tiên đúng với cái vị trí trên trắc dọc nhé.

(defun c:retn (/ tsl1 tsl2 txt tx t1 t2 t3 elt)
(vl-load-com)
(command "undo" "be")
(alert "\n Chon ten coc tren trac doc theo vung thay the")
(setq tsl1 (acet-ss-to-list (ssget (list (cons 0 "text") (cons 8 "TEXTTENCOC")))))
(setq tsl1 (vl-sort tsl1 '(lambda (x y) (< (car (cdr (assoc 11 (entget x)))) (car (cdr (assoc 11 (entget y))))))))
(alert "\n Chon ten coc tren trac ngang theo vung thay the")
(setq tsl2 (acet-ss-to-list (ssget (list (cons 0 "text") (cons 8 "ENTDAUCO") (cons 1 "Cäc:*")))))
(setq tsl2 (vl-sort tsl2 '(lambda (x y) (> (cadr (cdr (assoc 11 (entget x)))) (cadr (cdr (assoc 11 (entget y))))))))
(foreach txt tsl1
(setq t1 (cdr (assoc 1 (entget txt))))
(setq n (vl-position txt tsl1))
(setq tx (nth n tsl2))
(if tx
(progn
(setq elt (entget tx)
t2 (substr (cdr (assoc 1 elt)) 1 4)
t3 (strcat t2 " " t1)
elt (subst (cons 1 t3) (assoc 1 elt) elt)
)
(entmod elt)
)
)
)
(command "undo" "e")
(princ)
)

Do cái hình trắc ngang trắc dọc của bạn hơi ti hin nên bạn có thể chơi làm nhiều phát cho dễ kiểm hoặc chơi tổng một phát cũng Ok. mà hình như số trắc ngang còn thiếu cũng khơ khớ thì phải.... Chạy phát một thì chỉ tới trắc ngang TC95 là hết trong khi trên trắc dọc có tới quá TC105 lận. hề hề hề, kiểu này khó mà lười lắm........
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#3753 nguyentienthanhddksct

nguyentienthanhddksct

    biết vẽ polygon

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

Đã gửi 27 June 2011 - 10:59 PM

bạn có thể hướng dẫn mình kỹ một chút không? Ví dụ các tọa độ mình đã nhập hết vào excel rồi. Đã load lisp xong rồi. Bước tiếp theo là làm những j?
cảm ơn nhiều vì mình không biết nhiều về lisp!



bạn cho mình hỏi là bạn có các điểm tọa độ muốn đưa lên cad à. nếu là như vậy mình có 1 lisp để triển các điểm tọa độ lên đó.
  • 0

Các bạn mới học LISP vào đây học và cho ý kiến nhé:

http://www.vlisp.blo...-loi-mo-au.html


#3754 nguyentienthanhddksct

nguyentienthanhddksct

    biết vẽ polygon

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

Đã gửi 27 June 2011 - 11:06 PM

em có lisp này mong các bác chỉ giùm: lsp này là ghi tọa độ ra màn hình. nhưng nó lại đánh tên theo thứ tự em đo quy hoach giao thông nên chỉ cần ghi tọa độ ra màn hình không cần tên. các bác bỏ cái tên hộ em cái. thanks!
đây là lsp đó:
My link
  • 0

Các bạn mới học LISP vào đây học và cho ý kiến nhé:

http://www.vlisp.blo...-loi-mo-au.html


#3755 pdle

pdle

    biết lệnh mtext

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

Đã gửi 27 June 2011 - 11:24 PM

em có lisp này mong các bác chỉ giùm: lsp này là ghi tọa độ ra màn hình. nhưng nó lại đánh tên theo thứ tự em đo quy hoach giao thông nên chỉ cần ghi tọa độ ra màn hình không cần tên. các bác bỏ cái tên hộ em cái. thanks!
đây là lsp đó:
My link

Của anh đây:
(defun c:xy ( / ts pt1 pt2 px py pxt pyt txtpnt txtpnt1 txtpnt2 algn d alp)

(defun SETERR (s)
(if (/= s "Function cancelled")
(princ (strcat "\nError: " s))
) ; of If
(setq *error* oer
seterr nil
)
(princ)
) ; of SETERR
(setq oer *error*
*error* seterr
)

(setq ts (* (getvar "DIMTXT") (GETVAR "DIMSCALE")))

(setq pt1 (getpoint "\nPick First Point:"))
(setq pt2 (getpoint pt1 "\nPick Second Point:"))
(setq px (car pt1))
(setq py (cadr pt1))
;****** real to string
(setq pxt (rtos px 2 ))
(setq pyt (rtos py 2 ))
(command "dim1" "leader" pt1 pt2 "" pxt)
(setq txtpnt (cdr (assoc 10 (entget (entlast)))))
(setq txtpnt1 (list (car txtpnt)
(- (cadr txtpnt) (* 2.0 ts))
2.0
)
)
(setq d(sqrt (+ (* ts ts) (* 100 100))))
(setq alp(atan (/ ts 100)))
(setq txtpnt2 (polar txtpnt1 alp d))
(command "MTEXT" txtpnt1 txtpnt2 pyt "")
(setq *error* oer
seterr nil
)
(princ)

)

  • 0
Share your knowledge. It is a way to achieve immortality !

***

PS: Nếu bài viết của mình có ích, xin hãy "Bình chọn cho bài viết này" nhé :D

#3756 nguyentienthanhddksct

nguyentienthanhddksct

    biết vẽ polygon

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

Đã gửi 27 June 2011 - 11:44 PM

Của anh đây:

(defun c:xy ( / ts pt1 pt2 px py pxt pyt txtpnt txtpnt1 txtpnt2 algn d alp)

(defun SETERR (s)
(if (/= s "Function cancelled")
(princ (strcat "\nError: " s))
) ; of If
(setq *error* oer
seterr nil
)
(princ)
) ; of SETERR
(setq oer *error*
*error* seterr
)

(setq ts (* (getvar "DIMTXT") (GETVAR "DIMSCALE")))

(setq pt1 (getpoint "\nPick First Point:"))
(setq pt2 (getpoint pt1 "\nPick Second Point:"))
(setq px (car pt1))
(setq py (cadr pt1))
;****** real to string
(setq pxt (rtos px 2 ))
(setq pyt (rtos py 2 ))
(command "dim1" "leader" pt1 pt2 "" pxt)
(setq txtpnt (cdr (assoc 10 (entget (entlast)))))
(setq txtpnt1 (list (car txtpnt)
(- (cadr txtpnt) (* 2.0 ts))
2.0
)
)
(setq d(sqrt (+ (* ts ts) (* 100 100))))
(setq alp(atan (/ ts 100)))
(setq txtpnt2 (polar txtpnt1 alp d))
(command "MTEXT" txtpnt1 txtpnt2 pyt "")
(setq *error* oer
seterr nil
)
(princ)

)





Trước tiên cám ơn pác pdle nhìu. cái lsp của pác sài cũng được, nhưng lsp này không giống lsp của em. lsp của em khi đánh có hỏi chiều cao text. và có đường line ở giữa tọa độ x,y vậy pác có thể sửa cái lsp của em không vậy chỉ cần bỏ cái tên đi thui. mong pác giúp nhe...
  • 0

Các bạn mới học LISP vào đây học và cho ý kiến nhé:

http://www.vlisp.blo...-loi-mo-au.html


#3757 pdle

pdle

    biết lệnh mtext

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

Đã gửi 27 June 2011 - 11:56 PM

Trước tiên cám ơn pác pdle nhìu. cái lsp của pác sài cũng được, nhưng lsp này không giống lsp của em. lsp của em khi đánh có hỏi chiều cao text. và có đường line ở giữa tọa độ x,y vậy pác có thể sửa cái lsp của em không vậy chỉ cần bỏ cái tên đi thui. mong pác giúp nhe...


Theo ngu ý của em là có khi nào anh upload nhầm lisp không ạ? Em dùng thử lisp anh upload lên thấy nó có hỏi gì đâu ạ? Chỉ hỏi first point và second point thôi ạ :0
  • 0
Share your knowledge. It is a way to achieve immortality !

***

PS: Nếu bài viết của mình có ích, xin hãy "Bình chọn cho bài viết này" nhé :D

#3758 nguyentienthanhddksct

nguyentienthanhddksct

    biết vẽ polygon

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

Đã gửi 28 June 2011 - 06:06 AM

Theo ngu ý của em là có khi nào anh upload nhầm lisp không ạ? Em dùng thử lisp anh upload lên thấy nó có hỏi gì đâu ạ? Chỉ hỏi first point và second point thôi ạ :0



sorry pac nnhé hôm qua em ngủ quên mất tiêu. đúng là em up nhầm lsp pác ạ. em up lại pác coi nhé:
My link
  • 0

Các bạn mới học LISP vào đây học và cho ý kiến nhé:

http://www.vlisp.blo...-loi-mo-au.html


#3759 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 6009 Bài viết
Điểm đánh giá: 3113 (tuyệt vời)

Đã gửi 28 June 2011 - 02:41 PM

sorry pac nnhé hôm qua em ngủ quên mất tiêu. đúng là em up nhầm lsp pác ạ. em up lại pác coi nhé:
My link

Hề hề hề,
Bạn có thể tự mình làm được điều này mà.
Này nhé, hãy vô hiệu hóa các dòng code có dính tới cái stt đi là Ok thôi. Cách vô hiệu hóa một dòng code là thêm vào phía trước dòng code đó một hay vài ký tự chấm phẩy ( ; ) bạn ạ.
Trước hết bạn hãy thử thêm vào phía trước dòng code:
stt (append stt (list N))
để thành:
;;;; stt (append stt (list N))

Sau đó lưu file lisp lại thành file mới và chạy thử file mới này xem sao nhé. Có gì ta sẽ lại trao đổi tiếp.
Hề hề hề....
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#3760 hakhoailang

hakhoailang

    biết lệnh rotate

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

Đã gửi 28 June 2011 - 02:56 PM

Hề hề hề,
Nó đây nè. Dùng thử coi nhé. Chú ý rằng khi quét vùng chọn tren trắc dọc, chớ có ôm nhầm mấy em ở khu lý trình vào nghen. Vì các em này có trùng tên, trùng layer và cả trùng màu nữa nên mình chưa loại được. nếu tách được mấy em này qua lớp khác thì tuyệt hảo luôn.
Khi quét vùng chọn các trăc ngang, lưu ý sao cho cái trắc ngang đầu tiên đúng với cái vị trí trên trắc dọc nhé.


(defun c:retn (/ tsl1 tsl2 txt tx t1 t2 t3 elt)
(vl-load-com)
(command "undo" "be")
(alert "\n Chon ten coc tren trac doc theo vung thay the")
(setq tsl1 (acet-ss-to-list (ssget (list (cons 0 "text") (cons 8 "TEXTTENCOC")))))
(setq tsl1 (vl-sort tsl1 '(lambda (x y) (< (car (cdr (assoc 11 (entget x)))) (car (cdr (assoc 11 (entget y))))))))
(alert "\n Chon ten coc tren trac ngang theo vung thay the")
(setq tsl2 (acet-ss-to-list (ssget (list (cons 0 "text") (cons 8 "ENTDAUCO") (cons 1 "Cäc:*")))))
(setq tsl2 (vl-sort tsl2 '(lambda (x y) (> (cadr (cdr (assoc 11 (entget x)))) (cadr (cdr (assoc 11 (entget y))))))))
(foreach txt tsl1
(setq t1 (cdr (assoc 1 (entget txt))))
(setq n (vl-position txt tsl1))
(setq tx (nth n tsl2))
(if tx
(progn
(setq elt (entget tx)
t2 (substr (cdr (assoc 1 elt)) 1 4)
t3 (strcat t2 " " t1)
elt (subst (cons 1 t3) (assoc 1 elt) elt)
)
(entmod elt)
)
)
)
(command "undo" "e")
(princ)
)

Do cái hình trắc ngang trắc dọc của bạn hơi ti hin nên bạn có thể chơi làm nhiều phát cho dễ kiểm hoặc chơi tổng một phát cũng Ok. mà hình như số trắc ngang còn thiếu cũng khơ khớ thì phải.... Chạy phát một thì chỉ tới trắc ngang TC95 là hết trong khi trên trắc dọc có tới quá TC105 lận. hề hề hề, kiểu này khó mà lười lắm........

ko phải đâu bác em cắt nó ngắn đi để nhẹ hơn ấy mà . upload cho dễ thôi.
thank bác để em thử phát
  • 1