Đến nội dung


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

Hướng dẫn lập trình Lisp


  • Please log in to reply
497 replies to this topic

#241 TRUNGNGAMY

TRUNGNGAMY

    biết lệnh block

  • Members
  • PipPipPipPipPipPip
  • 401 Bài viết
Điểm đánh giá: 91 (tàm tạm)

Đã gửi 10 August 2010 - 02:08 AM

Mình sd cú pháp (setq ss (ssget)) để chọn một số đối tượng , trong đó có một số block tên "truranh"
Nếu mình muốn lọc tập hợp các block "truranh" trên (trong biến ss) ra một biến khác thì làm thế nào.
Mình đã thử làm như sau nhưng kg đc, các bạn chỉ giúp. Cám ơn
(setq ss (ssget))
(command "_.select" ss "")
(setq ss1 (ssget "p" '((0 . "insert") (2 . "truranh"))))
  • 0

#242 tdvn

tdvn

    biết lệnh rotate

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

Đã gửi 10 August 2010 - 02:59 AM

Mình sd cú pháp (setq ss (ssget)) để chọn một số đối tượng , trong đó có một số block tên "truranh"
Nếu mình muốn lọc tập hợp các block "truranh" trên (trong biến ss) ra một biến khác thì làm thế nào.
Mình đã thử làm như sau nhưng kg đc, các bạn chỉ giúp. Cám ơn
(setq ss (ssget))
(command "_.select" ss "")
(setq ss1 (ssget "p" '((0 . "insert") (2 . "truranh"))))

Mình nghỉ bạn làm như vậy là đúng rồi
  • 0

#243 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 10 August 2010 - 06:53 PM

Mình sd cú pháp (setq ss (ssget)) để chọn một số đối tượng , trong đó có một số block tên "truranh"
Nếu mình muốn lọc tập hợp các block "truranh" trên (trong biến ss) ra một biến khác thì làm thế nào.
Mình đã thử làm như sau nhưng kg đc, các bạn chỉ giúp. Cám ơn
(setq ss (ssget))
(command "_.select" ss "")
(setq ss1 (ssget "p" '((0 . "insert") (2 . "truranh"))))

có thể block đó của bạn là block động. tên của block động sẽ thay đổi khi bạn thay đổi trạng thái của nó.
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#244 hdt4151

hdt4151

    biết vẽ pline

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

Đã gửi 12 August 2010 - 04:20 PM

Mình hatch 1 vùng, sau đó muốn đo diện tích vùng đó nhưng ko muốn pick lại vùng đó giống như khi hatch. Bạn nào giúp mình viết 1 lisp sao cho chỉ cần chọn phần hatch thì sẽ xuất ra diện tích của hatch đó (ra text có sẵn). Thanks :(
  • 0

#245 hoan2182

hoan2182

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2646 Bài viết
Điểm đánh giá: 832 (rất tốt)

Đã gửi 12 August 2010 - 05:36 PM

Mình hatch 1 vùng, sau đó muốn đo diện tích vùng đó nhưng ko muốn pick lại vùng đó giống như khi hatch. Bạn nào giúp mình viết 1 lisp sao cho chỉ cần chọn phần hatch thì sẽ xuất ra diện tích của hatch đó (ra text có sẵn). Thanks :(

Theo em ko cần dùng lisp cho tốn công nhớ lệnh ra.
Anh cứ chọn phần đã hát rồi gõ lệnh LI xem có thấy diện tích ko?

Command: h HATCH
Pick internal point or [Select objects/remove Boundaries]: Selecting
everything...
Selecting everything visible...
Analyzing the selected data...

Analyzing internal islands...

Pick internal point or [Select objects/remove Boundaries]:
Command:
Command: li LIST 1 found

HATCH Layer: "0"
Space: Model space
Handle = 185
Hatch pattern ANSI31
Annotative: No
Hatch scale 1.0000
Hatch angle 0
Associative
Area 69.2689
Origin X= 0.0000 Y= 0.0000 Z= 0.0000
  • 0

Gió đưa cây cải về trời

Rau răm ở lại chịu lời đắng cay...


#246 hdt4151

hdt4151

    biết vẽ pline

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

Đã gửi 12 August 2010 - 08:53 PM

Ah, dùng lệnh Li thì mất công xem rồi ghi lại vào text, nếu dùng lisp đo dt pick lại điểm thì lâu quá vì đã có sẵn phần hatch đó rồi. Mình có đến gần 200 cái hatch như vậy nên làm sẽ mất thời gian lắm :( , cái mình muốn là nó tự động ghi diện tích vào text có sẵn, bạn nào giúp minh với nhé!
  • 0

#247 hoan2182

hoan2182

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2646 Bài viết
Điểm đánh giá: 832 (rất tốt)

Đã gửi 12 August 2010 - 09:32 PM

Ah, dùng lệnh Li thì mất công xem rồi ghi lại vào text, nếu dùng lisp đo dt pick lại điểm thì lâu quá vì đã có sẵn phần hatch đó rồi. Mình có đến gần 200 cái hatch như vậy nên làm sẽ mất thời gian lắm :( , cái mình muốn là nó tự động ghi diện tích vào text có sẵn, bạn nào giúp minh với nhé!

http://www.cadviet.c...o...12432&st=40
  • 0

Gió đưa cây cải về trời

Rau răm ở lại chịu lời đắng cay...


#248 hdt4151

hdt4151

    biết vẽ pline

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

Đã gửi 13 August 2010 - 09:30 AM

Không được bạn ơi, dùng lisp trên gần như là pick vào 1 vùng --- khoanh vùng đó - xuất ra dt

Cái mình muốn là nhấn vào hatch có sẵn và xuất ra giá trị diện tích :(
  • 0

#249 dkkx3a

dkkx3a

    biết lệnh trim

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

Đã gửi 13 August 2010 - 10:29 AM

Không được bạn ơi, dùng lisp trên gần như là pick vào 1 vùng --- khoanh vùng đó - xuất ra dt

Cái mình muốn là nhấn vào hatch có sẵn và xuất ra giá trị diện tích :(


Sài tạm cái này nè:
;=============================
(defun c:vd(/ dt p1)
(princ "\nPick Hatch tinh dientich: ")
(command "area" "OB" pause)
(setq dt (rtos (getvar "area") 2 2))
(setq p1 (getpoint "\nCHon diem dat Text: "))
(entmake (list (cons 0 "TEXT") (cons 1 dt) (cons 10 p1) (cons 40 5.0)))
(princ)
)
;=============================


Hay cái này (dùng cái này nhé, cái trên tham khảo cho zui!)

(defun c:vd(/ dt p1 ht)
(vl-load-com)
(setq dt (vlax-ename->vla-object (car(entsel "\nPick doi tuong tinh dien tich: ")))
dt (vlax-get-property dt 'Area)
dt (rtos dt 2 2)
)
(setq ht (getdist "\nCho vao co chu: "))
(if (not ht)(setq ht 5))

(setq p1 (getpoint "\nCHon diem dat Text: "))
(entmake (list (cons 0 "TEXT") (cons 1 dt) (cons 10 p1) (cons 40 ht)))
(princ)
)


;=============================

ZuiZÚi
  • 0
TỰ SỰ
Biển vào chiều buồn giữa cô liêu
Sóng vỗ bờ bạc đầu con nước
Khi biển động như lòng ta chợt động
Biển ồn ào nhưng thực rất dịu êm.......

#250 hdt4151

hdt4151

    biết vẽ pline

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

Đã gửi 13 August 2010 - 11:32 AM

Lisp chạy rất tốt, thanks bạn nhé. Bạn giúp mình thêm 1 chút nữa đc ko, thay vì pick chọn vị trí text rồi ghi text vào thì bây h đổi lại là chọn 1 text đã có sẵn, ghi diện tích vào text có sẵn đó ^^'
  • 0

#251 dkkx3a

dkkx3a

    biết lệnh trim

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

Đã gửi 13 August 2010 - 12:53 PM

Lisp chạy rất tốt, thanks bạn nhé. Bạn giúp mình thêm 1 chút nữa đc ko, thay vì pick chọn vị trí text rồi ghi text vào thì bây h đổi lại là chọn 1 text đã có sẵn, ghi diện tích vào text có sẵn đó ^^'


Đây bạn, bạn dùng thử cái này nhé:

;============================
(defun c:vd2(/ dt text luu_dim)
(setq luu_dim (getvar "dimzin"))
(setvar "dimzin" 0)
(vl-load-com)
(setq dt (vlax-ename->vla-object (car(entsel "\nPick doi tuong tinh dien tich: "))))
(if (vlax-property-available-p dt 'Area)
(progn
(setq dt (vlax-get-property dt 'Area)
dt (rtos dt 2 2)
)
(setq text (vlax-ename->vla-object (car(entsel "\nPick Text ghi ket qua: "))))
(vlax-put-property text 'TextString dt)
)
(princ "\nDoi tuong chon khong co dien tich !!!")
)
(setvar "dimzin" luu_dim)
(princ)
)
;============================


@ Nhấn Thanks để thể hiện mọi lời cảm ơn. hì hì.........
  • 1
TỰ SỰ
Biển vào chiều buồn giữa cô liêu
Sóng vỗ bờ bạc đầu con nước
Khi biển động như lòng ta chợt động
Biển ồn ào nhưng thực rất dịu êm.......

#252 hdt4151

hdt4151

    biết vẽ pline

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

Đã gửi 13 August 2010 - 01:22 PM

okie, thanks bạn rất nhiều ^^
  • 0

#253 Thaistreetz

Thaistreetz

    biết lệnh adcenter

  • Advance Member
  • PipPipPipPipPipPipPip
  • 903 Bài viết
Điểm đánh giá: 505 (tốt)

Đã gửi 14 August 2010 - 01:36 PM

khi làm việc với group, nếu muốn chỉnh sửa hoặc xoá 1 đối tuợng con trong group ta cần gõ tổ hợp fím Ctrl+Shift+A để bật/tắt liên kết của các đối tuợng trong group.
Mình đoán chắc chắn là có 1 biến hệ thống nào đó lưu giữ thông tin trạng thái ON/OFF này của group (giống như biến "ACAD_WIPEOUT_VARS" lưu trạng thái ON/OFF của wipeout) nhưng chưa tìm được. Bác nào biết thông tin giúp mình với
  • 0

Hình đã gửi
IN HIM, I TRUST. THE TRUST IN MY GOD


#254 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 14 August 2010 - 02:48 PM

khi làm việc với group, nếu muốn chỉnh sửa hoặc xoá 1 đối tuợng con trong group ta cần gõ tổ hợp fím Ctrl+Shift+A để bật/tắt liên kết của các đối tuợng trong group.
Mình đoán chắc chắn là có 1 biến hệ thống nào đó lưu giữ thông tin trạng thái ON/OFF này của group (giống như biến "ACAD_WIPEOUT_VARS" lưu trạng thái ON/OFF của wipeout) nhưng chưa tìm được. Bác nào biết thông tin giúp mình với

Sử dụng biến hệ thống : pickstyle

Trích từ Help :
To control whether all grouped objects can be selected individually
Do one of the following:
- At the command prompt, enter pickstyle. Enter 1 to turn on group selection. Objects within groups can be selected as a group only, not individually.
- At the command prompt, enter pickstyle. Enter 0 to turn off group selection. Objects within groups can be selected individually only, not as a group.
- At any time, turn group selection on and off by pressing either CTRL+H or CTRL+SHIFT+A.

  • 2

#255 quangtvxd

quangtvxd

    biết zoom

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

Đã gửi 20 August 2010 - 10:07 AM

Mình có một số lisp khá hay nhưng đã bị mã hóa anh em nào có phần mềm giải mã lisp thì chỉ giúp mình link với. Cám ơn nhé.
  • 0

#256 truongthanh

truongthanh

    biết lệnh text

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

Đã gửi 31 August 2010 - 10:03 AM

Cho mình hỏi, mình muốn thử viết 1 lisp đổi bề dày Pline mà sao mình viết hoài ko được nhờ các bạn xem dùm mình thử
thanks
(defun c:glb ()
(setq SS (ssget '((0 . "LWPOLYLINE"))))
(setq gt (getreal "\n Cho do rong moi cua POLYLINE:"))
(command ".pedit" ss "w" gt "" )
(princ)
  )
  • 0

#257 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 31 August 2010 - 10:27 AM

Cho mình hỏi, mình muốn thử viết 1 lisp đổi bề dày Pline mà sao mình viết hoài ko được nhờ các bạn xem dùm mình thử
thanks
(defun c:glb ()
(setq SS (ssget '((0 . "LWPOLYLINE"))))
(setq gt (getreal "\n Cho do rong moi cua POLYLINE:"))
(command ".pedit" ss "w" gt "" )
(princ)
  )

truongthanh dùng thử LISP này (sử dụng hàm VLA-...)
(defun c:glb (/ ent gt i ss)
(vl-load-com)
(if (and
(setq ss (ssget '((0 . "LWPOLYLINE"))))
(setq gt (getdist "\n Chon do rong moi cua POLYLINE:"))
(setq i -1))
(while (setq ent (ssname ss (setq i (1+ i))))
(vla-put-ConstantWidth (vlax-ename->vla-object ent) gt)) )
(Princ))

  • 2

#258 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 31 August 2010 - 10:41 AM

Cho mình hỏi, mình muốn thử viết 1 lisp đổi bề dày Pline mà sao mình viết hoài ko được nhờ các bạn xem dùm mình thử
thanks
(defun c:glb ()
(setq SS (ssget '((0 . "LWPOLYLINE"))))
(setq gt (getreal "\n Cho do rong moi cua POLYLINE:"))
(command ".pedit" ss "w" gt "" )
(princ)
  )

Của bạn được sửa lại
(defun c:glb ()
(setq SS (ssget '((0 . "LWPOLYLINE"))))
(setq gt (getreal "\n Cho do rong moi cua POLYLINE:"))
(command ".pedit" "m" ss "" "w" gt "" )
(princ)
)

  • 2

#259 zoro107

zoro107

    biết vẽ ellipse

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

Đã gửi 31 August 2010 - 11:07 AM

Lính mới yêu cầu bác Bình viết ít va đúng trọng tâm thôi. hic . Em hay đọc lóm ma bác viết tùm lum lam em đọc 1 hôi không hiêu bác muốn các gì, vài câu góp ý mong bác đừng giận..
Nhân tiện đây cám ơn bác Hoàng nhiu lắm. hiii................... học lóm của bác nhiu roài mà đến giờ mới cám ơn.... nga quá
  • 0

#260 truongthanh

truongthanh

    biết lệnh text

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

Đã gửi 31 August 2010 - 11:56 AM

Của bạn được sửa lại

(defun c:glb ()
(setq SS (ssget '((0 . "LWPOLYLINE"))))
(setq gt (getreal "\n Cho do rong moi cua POLYLINE:"))
(command ".pedit" "m" ss "" "w" gt "" )
(princ)
)

cho mình hỏi code của TUE với Bác Gia Bach khác nhau như thế nào vậy?
thanks!
  • 0