Đến nội dung


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

[Hỏi] Cùng nhau học LISP


  • Please log in to reply
171 replies to this topic

#61 master_worse

master_worse

    biết lệnh offset

  • Advance Member
  • PipPipPip
  • 170 Bài viết
Điểm đánh giá: 87 (tàm tạm)

Đã gửi 25 September 2010 - 06:50 PM

[quote name='ketxu' post='109531' date='Sep 25 2010, 17:16']Cái thứ nhất :

(defun vcurvedim (vcurvescale / dstylename)
....
(setq dstylename "ENGLISHVC")
(command "dimstyle" "save" dstylename ) ;_ end of command
) ;_ end of defun
[/quote]
Hàm vcurvedim có một đối số vcurvescale.
[quote]Lúc dùng thì em dùng ntnày

(defun dimstyle-vidu (/ dimstyle oldvars)
(setq dimstyle (getvar "dimstyle"))
(or (tblsearch "dimstyle" "vidu ")
(progn (setq oldvars (mapcar 'getvar '("cmdecho" "textstyle")))
(setvar "cmdecho" 0)
(or (tblsearch "STYLE" "vidu ") (command "-style" "vidu " "cour.ttf" "0.0" "0.8" "0" "No" "No"))
(mapcar 'setvar '("cmdecho" "textstyle") oldvars)
(setvar "dimaltd" 2) ;_alt precision
(setvar "dimapost" "") ;_alt prefix and suffix
(setvar "dimaltrnd" 0.0000) ;_alt roundoff
(setvar "dimaltf" 25.4000) ;_alt scale factor
(setvar "dimalttd" 2) ;_alt tol precision
(setvar "dimalttz" 0) ;_alt tol zeroes
(setvar "dimaltu" 2) ;_alt units
(setvar "dimaltz" 0) ;_alt zeroes
(setvar "dimalt" 0) ;_alternate units (on/off)
(setvar "dimaunit" 0) ;_angle format
(setvar "dimadec" 0) ;_angle precision
(setvar "dimazin" 1) ;_angle zero supression
(setvar "dimarcsym" 0) ;_arc len symbol
(setvar "dimblk" ".") ;_arrow
(setvar "dimblk1" ".") ;_arrow 1
(setvar "dimblk2" ".") ;_arrow 2
(setvar "dimasz" 0.1) ;_arrow size
(setvar "dimcen" 0.0900) ;_center mark size
(setvar "dimdsep" ".") ;_decimal separator
(setvar "dimclrd" 1) ;_dim line color
(setvar "dimdle" 0.0000) ;_dim line ext
(setvar "dimtofl" 1) ;_dim line forced (on/off)
(setvar "dimltype" "byblock") ;_dim line linetype
(setvar "dimlwd" -2) ;_dim line lineweight
(setvar "dimdli" 0.0000) ;_dim line spacing
(setvar "dimltex1" "byblock") ;_ext line 1 linetype
(setvar "dimltex2" "byblock") ;_ext line 2 linetype
(setvar "dimclre" 1) ;_ext line color
(setvar "dimexe" 0.0100) ;_ext line extension
(setvar "dimlwe" -2) ;_ext line lineweight
(setvar "dimexo" 0.0500) ;_ext line offset
(setvar "dimatfit" 3) ;_fit: arrow and text
(setvar "dimtmove" 2) ;_fit: text movement
(setvar "dimfxlon" 0) ;_fixed ext line enabled (on/off)
(setvar "dimfxl" 0.0100) ;_fixed ext line length
(setvar "dimfrac" 0) ;_fraction format
(setvar "dimjogang" (/ (* 90 pi) 180)) ;_large rad dim jog angle
(setvar "dimldrblk" ".") ;_leader arrow
(setvar "dimlfac" 100.0000) ;_length scale
(setvar "dimlunit" 2) ;_length units
(setvar "dimsd1" 0) ;_no dim line 1 (on/off)
(setvar "dimsd2" 0) ;_no dim line 2 (on/off)
(setvar "dimsoxd" 0) ;_no dim lines outside (on/off)
(setvar "dimse1" 0) ;_no ext line 1 (on/off)
(setvar "dimse2" 0) ;_no ext line 2 (on/off)
(setvar "dimscale" 0.0000) ;_overall scale
(setvar "dimdec" 1) ;_precision
(setvar "dimrnd" 0.0000) ;_roundoff
(setvar "dimsah" 1) ;_separate arrows (on/off)
(setvar "dimtfillclr" 0) ;_text background color
(setvar "dimtfill" 0) ;_text background enabled
(setvar "dimclrt" 256) ;_text color
(setvar "dimtxt" 0.05) ;_text height
(setvar "dimtix" 1) ;_text inside (on/off)
(setvar "dimtih" 0) ;_text inside align (on/off)
(setvar "dimgap" 0.0500) ;_text offset
(setvar "dimtoh" 0) ;_text outside align (on/off)
(setvar "dimjust" 0) ;_text pos hor
(setvar "dimtad" 0) ;_text pos vert
(setvar "dimpost" "") ;_text prefix and suffix
(setvar "dimtxsty" "vidu") ;_text style
(setvar "dimtm" 0.0000) ;_tol dev lower
(setvar "dimtp" 0.0000) ;_tol dev upper
(setvar "dimtol" 0) ;_tol deviation (on/off)
(setvar "dimlim" 0) ;_tol limits (on/off)
(setvar "dimtolj" 1) ;_tol pos vert
(setvar "dimtdec" 1) ;_tol precision
(setvar "dimtfac" 1.0000) ;_tol text scale factor
(setvar "dimtzin" 8) ;_tol zero suppression
(setvar "dimzin" 8) ;_zero suppression
(command ".-dimstyle" "Save" "vidu ")
) ;_ end progn
) ;_ end or
(command ".-dimstyle" "Restore" dimstyle)
) ;_ end defun

  • 1

Ngu dốt không đáng thẹn bằng thiếu ý chí học hỏi


Tri thức làm người ta khiêm tốn, ngu si làm người ta kiêu ngạo (Ngạn ngữ Anh)


#62 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 25 September 2010 - 09:10 PM

Hàm vcurvedim có một đối số vcurvescale.

thi cung binh thuong thoi
(command "tenbien" "On") nếu có thể thì bạn nên thay bằng (setvar "tenbien" 1)
(command "tenbien" "Off") nếu có thể thì bạn nên thay bằng (setvar "tenbien" 0)
Nếu không có gì đặc biệt thì bỏ (setq dstylename "ENGLISHVC")
(command "dimstyle" "save" dstylename) -> (command "dimstyle" "save" "ENGLISHVC")
bạn tham khảo cái này nhé


(defun dimstyle-vidu (/ dimstyle oldvars)
(setq dimstyle (getvar "dimstyle"))
(or (tblsearch "dimstyle" "vidu ")
(progn (setq oldvars (mapcar 'getvar '("cmdecho" "textstyle")))
(setvar "cmdecho" 0)
(or (tblsearch "STYLE" "vidu ") (command "-style" "vidu " "cour.ttf" "0.0" "0.8" "0" "No" "No"))
(mapcar 'setvar '("cmdecho" "textstyle") oldvars)
(setvar "dimaltd" 2) ;_alt precision
(setvar "dimapost" "") ;_alt prefix and suffix
(setvar "dimaltrnd" 0.0000) ;_alt roundoff
(setvar "dimaltf" 25.4000) ;_alt scale factor
(setvar "dimalttd" 2) ;_alt tol precision
(setvar "dimalttz" 0) ;_alt tol zeroes
(setvar "dimaltu" 2) ;_alt units
(setvar "dimaltz" 0) ;_alt zeroes
(setvar "dimalt" 0) ;_alternate units (on/off)
(setvar "dimaunit" 0) ;_angle format
(setvar "dimadec" 0) ;_angle precision
(setvar "dimazin" 1) ;_angle zero supression
(setvar "dimarcsym" 0) ;_arc len symbol
(setvar "dimblk" ".") ;_arrow
(setvar "dimblk1" ".") ;_arrow 1
(setvar "dimblk2" ".") ;_arrow 2
(setvar "dimasz" 0.1) ;_arrow size
(setvar "dimcen" 0.0900) ;_center mark size
(setvar "dimdsep" ".") ;_decimal separator
(setvar "dimclrd" 1) ;_dim line color
(setvar "dimdle" 0.0000) ;_dim line ext
(setvar "dimtofl" 1) ;_dim line forced (on/off)
(setvar "dimltype" "byblock") ;_dim line linetype
(setvar "dimlwd" -2) ;_dim line lineweight
(setvar "dimdli" 0.0000) ;_dim line spacing
(setvar "dimltex1" "byblock") ;_ext line 1 linetype
(setvar "dimltex2" "byblock") ;_ext line 2 linetype
(setvar "dimclre" 1) ;_ext line color
(setvar "dimexe" 0.0100) ;_ext line extension
(setvar "dimlwe" -2) ;_ext line lineweight
(setvar "dimexo" 0.0500) ;_ext line offset
(setvar "dimatfit" 3) ;_fit: arrow and text
(setvar "dimtmove" 2) ;_fit: text movement
(setvar "dimfxlon" 0) ;_fixed ext line enabled (on/off)
(setvar "dimfxl" 0.0100) ;_fixed ext line length
(setvar "dimfrac" 0) ;_fraction format
(setvar "dimjogang" (/ (* 90 pi) 180)) ;_large rad dim jog angle
(setvar "dimldrblk" ".") ;_leader arrow
(setvar "dimlfac" 100.0000) ;_length scale
(setvar "dimlunit" 2) ;_length units
(setvar "dimsd1" 0) ;_no dim line 1 (on/off)
(setvar "dimsd2" 0) ;_no dim line 2 (on/off)
(setvar "dimsoxd" 0) ;_no dim lines outside (on/off)
(setvar "dimse1" 0) ;_no ext line 1 (on/off)
(setvar "dimse2" 0) ;_no ext line 2 (on/off)
(setvar "dimscale" 0.0000) ;_overall scale
(setvar "dimdec" 1) ;_precision
(setvar "dimrnd" 0.0000) ;_roundoff
(setvar "dimsah" 1) ;_separate arrows (on/off)
(setvar "dimtfillclr" 0) ;_text background color
(setvar "dimtfill" 0) ;_text background enabled
(setvar "dimclrt" 256) ;_text color
(setvar "dimtxt" 0.05) ;_text height
(setvar "dimtix" 1) ;_text inside (on/off)
(setvar "dimtih" 0) ;_text inside align (on/off)
(setvar "dimgap" 0.0500) ;_text offset
(setvar "dimtoh" 0) ;_text outside align (on/off)
(setvar "dimjust" 0) ;_text pos hor
(setvar "dimtad" 0) ;_text pos vert
(setvar "dimpost" "") ;_text prefix and suffix
(setvar "dimtxsty" "vidu") ;_text style
(setvar "dimtm" 0.0000) ;_tol dev lower
(setvar "dimtp" 0.0000) ;_tol dev upper
(setvar "dimtol" 0) ;_tol deviation (on/off)
(setvar "dimlim" 0) ;_tol limits (on/off)
(setvar "dimtolj" 1) ;_tol pos vert
(setvar "dimtdec" 1) ;_tol precision
(setvar "dimtfac" 1.0000) ;_tol text scale factor
(setvar "dimtzin" 8) ;_tol zero suppression
(setvar "dimzin" 8) ;_zero suppression
(command ".-dimstyle" "Save" "vidu ")
) ;_ end progn
) ;_ end or
(command ".-dimstyle" "Restore" dimstyle)
) ;_ end defun

Chết thật.Giờ em mới biết biến cục bộ mất đi thì không sử dụng như đối số đc nữa.Nó free rồi thì hết gọi luôn ^^.E sẽ nghiên cứu tiếp ạ ^^.Còn vấn đề với thằng thứ 2 nữa :|
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#63 master_worse

master_worse

    biết lệnh offset

  • Advance Member
  • PipPipPip
  • 170 Bài viết
Điểm đánh giá: 87 (tàm tạm)

Đã gửi 25 September 2010 - 09:18 PM

Chết thật.Giờ em mới biết biến cục bộ mất đi thì không sử dụng như đối số đc nữa.Nó free rồi thì hết gọi luôn ^^.E sẽ nghiên cứu tiếp ạ ^^.Còn vấn đề với thằng thứ 2 nữa :|

Cần phân biệt rõ đối số, biến toàn cục và biến cục bộ. Trên diễn đàn hình như có nói vấn đề này bạn tim xem nhé
(defun abc (doiso1 doiso2 doiso3 / bien-tutimhieutiepdinha ))
goi (abc doiso1 doiso2 doiso3)
P/S: Cứ từ từ - Không gấp được đâu

Bài thơ chưa biết đặt tên :(

Cứ thủng thẳng từ từ
Đừng vội bước thật sâu
Nên đi từ căn bản
Bắt đầu từ đơn giản
Đến điều phức tạp hơn
Và phức tạp hơn nữa
Khi đó, em sẽ hiểu
Em đang đọc những gì?

Cuộc sống không chờ đợi
Thời gian lặng lẽ trôi
Hãy bước đi em nhé
Nghị lực và niềm tin
Đồng hành cùng sánh bước

Đà Nẵng, sáng ngày 27/8/2010
Tue_NV


Bài viết đã được chỉnh sửa nội dung bởi master_worse: 26 September 2010 - 12:14 PM

  • 1

Ngu dốt không đáng thẹn bằng thiếu ý chí học hỏi


Tri thức làm người ta khiêm tốn, ngu si làm người ta kiêu ngạo (Ngạn ngữ Anh)


#64 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 26 September 2010 - 12:42 PM

Em có thêm 1 thắc mắc nữa,là những biến không khai báo khi đặt tên hàm,sau khi thực hiện xong hàm thì nó còn tồn tại hay cũng mất ạ?
Và việc khai báo biến cục bộ có tương đương với việc khai báo biến toàn cục nhưng cuối hàm có đoạn (setq bien nil) không ạ ?.Lúc đấy thì e hiểu là giá trị về nil rồi,ở hàm khác vẫn gọi nó lên để thay đổi giá trị được,vậy là máy vẫn dành bộ nhớ cho nó?Còn biến cục bộ thì không gọi được lại nữa?
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#65 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 26 September 2010 - 02:47 PM

Em có thêm 1 thắc mắc nữa,là những biến không khai báo khi đặt tên hàm,sau khi thực hiện xong hàm thì nó còn tồn tại hay cũng mất ạ?
Và việc khai báo biến cục bộ có tương đương với việc khai báo biến toàn cục nhưng cuối hàm có đoạn (setq bien nil) không ạ ?.Lúc đấy thì e hiểu là giá trị về nil rồi,ở hàm khác vẫn gọi nó lên để thay đổi giá trị được,vậy là máy vẫn dành bộ nhớ cho nó?Còn biến cục bộ thì không gọi được lại nữa?

Các biến không khai báo thì lisp sẽ hiểu nó là biến toàn cục.
Khi đã set nó về nil thì gọi lại nó vẫn là nil
Biến cục bộ khi gọi lại sau khi nó đã hoàn thành sứ mạng nó cũng sẽ là nil.
Tất cả các biến toàn cục đầu cần có một ko6ng gian dự trữ cho nó ở bộ nhớ, vì thế càng nhiều biến toàn cục lisp càng ì ach....
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#66 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 26 September 2010 - 02:55 PM

Hì.E cảm ơn 2 bác.E sẽ xúc tiến ngay ^^
Cho e hỏi 1 câu hơi dài là : e đang test 2 hàm tạo dimstyle trên mạng này,nhưng chưa được.Không hiểu là hàm có vấn đề hay lại như lần trước,"cách sử dụng của em sai".
Cái thứ nhất :


(defun vcurvedim (vcurvescale / dstylename)
(command "-style" "KCVN-COM" "VNSIMLI.shx" 0 1 0 "" "" "")
(setvar "DIMADEC" 0) ;Angular decimal places
(command "DIMALT" "Off") ;Alternate units selected
(setvar "DIMALTD" 3) ;Alternate unit decimal places
(setvar "DIMALTF" 0.0394) ;Alternate unit scale factor
(setvar "DIMALTRND" 0.0000) ;Alternate units rounding value
(setvar "DIMALTTD" 3) ;Alternate tolerance decimal places
(setvar "DIMALTTZ" 0) ;Alternate tolerance zero suppression
(setvar "DIMALTU" 2) ;Alternate units
(setvar "DIMALTZ" 0) ;Alternate unit zero suppression
(setvar "DIMAPOST" "") ;Prefix and suffix for alternate text
(setvar "DIMARCSYM" 0) ;Arc length symbol
(setvar "DIMASZ" 0.8500) ;Arrow size
(setvar "DIMATFIT" 3) ;Arrow and text fit
(setvar "DIMAUNIT" 0) ;Angular unit format
(setvar "DIMAZIN" 0) ;Angular zero supression
(setvar "DIMBLK" "ClosedFilled") ;Arrow block name
(command "DIMBLK1" "ArchTick") ;First arrow block name
(command "DIMBLK2" "ArchTick") ;Second arrow block name
(setvar "DIMCEN" 1.8000) ;Center mark size
(setvar "DIMCLRD" BYLAYER) ;Dimension line and leader color
(setvar "DIMCLRE" BYLAYER) ;Extension line color
(setvar "DIMCLRT" 60) ;Dimension text color
(setvar "DIMDEC" 0) ;Decimal places
(setvar "DIMDLE" 0.0000) ;Dimension line extension
(setvar "DIMDLI" 0.0000) ;Dimension line spacing
(setvar "DIMDSEP" ".") ;Decimal separator
(setvar "DIMEXE" 0.9000) ;Extension above dimension line
(setvar "DIMEXO" 0.0000) ;Extension line origin offset
(setvar "DIMFRAC" 0) ;Fraction format
(setvar "DIMFXL" 1.2500) ;Fixed Extension Line
(command "DIMFXLON" "Off") ;Enable Fixed Extension Line


(setvar "DIMGAP" 0.6600) ;Gap from dimension line to text

(command "DIMJOGANG" 45) ;Radius dimension jog angle
(setvar "DIMJUST" 0) ;Justification of text on dimension line
(command "DIMLDRBLK" "ClosedFilled") ;Leader block name
(setvar "DIMLFAC" vcurvescale) ;----------------------Note -- Linear unit scale factor
(command "DIMLIM" "Off") ;Generate dimension limits
(command "DIMLTEX1" "BYBLOCK") ;Linetype extension line 1
(command "DIMLTEX2" "BYBLOCK") ;Linetype extension line 2
(command "DIMLTYPE" "BYBLOCK") ;Dimension linetype
(setvar "DIMLUNIT" 2) ;Linear unit format
(setvar "DIMLWD" -2) ;Dimension line and leader lineweight
(setvar "DIMLWE" -2) ;Extension line lineweight
(setvar "DIMPOST" "'") ;Prefix and suffix for dimension text
(setvar "DIMRND" 0.0000) ;Rounding value
(command "DIMSAH" "On") ;Separate arrow blocks
(setvar "DIMSCALE" 1.0000) ;Overall scale factor
(command "DIMSD1" "Off") ;Suppress the first dimension line
(command "DIMSD2" "Off") ;Suppress the second dimension line
(command "DIMSE1" "Off") ;Suppress the first extension line
(command "DIMSE2" "Off") ;Suppress the second extension line
(command "DIMSOXD" "Off") ;Suppress outside dimension lines
(setvar "DIMTAD" 1) ;Place text above the dimension line
(setvar "DIMTDEC" 0) ;Tolerance decimal places
(setvar "DIMTFAC" 1.0000) ;Tolerance text height scaling factor
(setvar "DIMTFILL" 1) ;Text background enabled
(setvar "DIMTFILLCLR" "BYBLOCK") ;Text background color
(command "DIMTIH" "Off") ;Text inside extensions is horizontal
(command "DIMTIX" "On") ;Place text inside extensions
(setvar "DIMTM" 0.0000) ;Minus tolerance
(setvar "DIMTMOVE" 2) ;Text movement
(command "DIMTOFL" "On") ;Force line inside extension lines
(command "DIMTOH" "Off") ;Text outside horizontal
(command "DIMTOL" "Off") ;Tolerance dimensioning
(setvar "DIMTOLJ" 1) ;Tolerance vertical justification
(setvar "DIMTP" 0.0000) ;Plus tolerance
(setvar "DIMTSZ" 0.0000) ;Tick size
(setvar "DIMTVP" 0.0000) ;Text vertical position
(setvar "DIMTXSTY" "KCVN-COMM") ;Text style
(setvar "DIMTXT" 1.8000) ;Text height
(setvar "DIMTZIN" 0) ;Tolerance zero suppression
(command "DIMUPT" "Off") ;User positioned text
(setvar "DIMZIN" 8) ;Zero suppression
(setq dstylename "ENGLISHVC")

(command "dimstyle"
"save"
dstylename
) ;_ end of command
) ;_ end of defun

Lúc dùng thì em dùng ntnày
; DimStyle Create
;
(defun DSTYLE_DIMSTYLE_CREATE (DSTY$ DSCL# AH$ FSTY$)
(if (null (tblsearch "dimstyle" DSTY$))
(progn
(entmake
(list
(cons 0 "DIMSTYLE") ; Entity Type
(cons 100 "AcDbSymbolTableRecord") ; Subclass marker
(cons 100 "AcDbDimStyleTableRecord") ; Subclass marker
(cons 2 DSTY$) ; Dimstyle name
(cons 70 0) ; Standard flag value
(cons 3 "") ; DIMPOST
(cons 4 "") ; DIMAPOST
(cons 5 AH$) ; DIMBLK
(cons 6 AH$) ; DIMBLK1
(cons 7 AH$) ; DIMBLK2
(cons 40 DSCL#) ; DIMSCALE
(cons 41 0.0937) ; DIMASZ
(cons 42 0.0937) ; DIMEXO
(cons 43 0.38) ; DIMDLI
(cons 44 0.0625) ; DIMEXE
(cons 45 0.0) ; DIMRND
(cons 46 0.0625) ; DIMDLE
(cons 47 0.0) ; DIMTP
(cons 48 0.0) ; DIMTM
(cons 140 0.0937) ; DIMTXT
(cons 141 0.09) ; DIMCEN
(cons 142 0.0) ; DIMTSZ
(cons 143 25.4) ; DIMALTF
(cons 144 1.0) ; DIMLFAC
(cons 145 0.0) ; DIMTVP
(cons 146 1.0) ; DIMTFAC
(cons 147 0.0625) ; DIMGAP
(cons 71 0) ; DIMTOL
(cons 72 0) ; DIMLIM
(cons 73 0) ; DIMTIH
(cons 74 0) ; DIMTOH
(cons 75 0) ; DIMSE1
(cons 76 0) ; DIMSE2
(cons 77 0) ; DIMTAD
(cons 78 3) ; DIMZIM
(cons 170 0) ; DIMALT
(cons 171 2) ; DIMALTD
(cons 172 0) ; DIMTOFL
(cons 173 0) ; DIMSAH
(cons 174 0) ; DIMTIX
(cons 175 0) ; DIMSOXD
(cons 176 1) ; DIMCLRD
(cons 177 1) ; DIMCLRE
(cons 178 2) ; DIMCRRT
(cons 270 4) ; DIMUNIT
(cons 271 4) ; DIMDEC
(cons 272 4) ; DIMTDEC
(cons 273 2) ; DIMALTU
(cons 274 2) ; DIMALTTD
(cons 275 0) ; DIMAUNIT
(cons 276 2) ; DIMFRAC
(cons 277 4) ; DIMLUNIT
(cons 279 2) ; DIMTMOVE
(cons 280 0) ; DIMJUST
(cons 281 0) ; DIMSD1
(cons 282 0) ; DIMSD2
(cons 283 1) ; DIMTOLJ
(cons 284 0) ; DIMTZIN
(cons 285 0) ; DIMALTZ
(cons 286 0) ; DIMALTTZ
(cons 287 5) ; DIMFIT
(cons 288 0) ; DIMUPT
(cons 340 (tblobjname "style" FSTY$)) ; DIMTXSTY
(cons 342 (cdr (assoc 330 (entget (tblobjname "block" AH$))))); DIMLDRBLK
(cons 343 (cdr (assoc 330 (entget (tblobjname "block" AH$))))); DIMLDRBLK1
(cons 344 (cdr (assoc 330 (entget (tblobjname "block" AH$))))); DIMLDRBLK2
)
)
)
)
(command "._-dimstyle" "_restore" DSTY$) ; Set dimstyle current
(alert (strcat "\nThe current DimStyle name is "DSTY$"."
"\nThe current DimScale set to "(rtos DSCL# 2 0)"."))
)
;
;;;/////////////////////////////////////////////////////////

Đến lúc dùng thì :
(defun c:taodim()
(DSTYLE_DIMSTYLE_CREATE "DIM" 1 "." "text")
)
cũng hỏng.Lần này chắc do e k hiểu cách gán đối số.Vì cơ bản e cũng không hiểu $,# là cái j...
Chắc chắn là e sai nhưng đầu óc đang bấn loạn,không tìm đc chỗ sai :( Tạo dimstyle rườm rà quá,nên e định thôi thì dùng template.Nhưng mà ấm ức quá,k chịu đc :)(.Code dài,các bác chịu khó cop về test hàm hộ e với nhé :((

Ấy chớ, đừng có ấm ức chi cho nó bể ...... bụng. Cứ phải hề hề thôi bác ơi. Cuộc đời còn lắm thứ mình dốt chứ chả phải riêng gì anh cu lisp này. Cái gì ta chưa biết sẽ từ từ biết, cái gì ta biệt rồi thì sẽ từ từ vọc thêm. Cái gì ta làm được thì ta từ từ mà xài. cái gì ta chưa làm được hay chưa hiểu được ta cũng cứ từ tư chưa xài. Cái gì ta làm chưa ra thì cứ từ từ mà làm ......hề hề .....vì thể nào nó cũng sẽ ra từ từ , lâu mau là do cái cách ta làm mà thôi.
Cứ vậy là lúc nào ta cũng vui như..... Tết bác à.....
Hề hề hề,.....
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#67 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 26 September 2010 - 11:49 PM

Ấy chớ, đừng có ấm ức chi cho nó bể ...... bụng. Cứ phải hề hề thôi bác ơi. Cuộc đời còn lắm thứ mình dốt chứ chả phải riêng gì anh cu lisp này. Cái gì ta chưa biết sẽ từ từ biết, cái gì ta biệt rồi thì sẽ từ từ vọc thêm. Cái gì ta làm được thì ta từ từ mà xài. cái gì ta chưa làm được hay chưa hiểu được ta cũng cứ từ tư chưa xài. Cái gì ta làm chưa ra thì cứ từ từ mà làm ......hề hề .....vì thể nào nó cũng sẽ ra từ từ , lâu mau là do cái cách ta làm mà thôi.
Cứ vậy là lúc nào ta cũng vui như..... Tết bác à.....
Hề hề hề,.....

Vâng tks bác. giờ thì e đã hiểu hơn về việc quản lý biến của Lisp r.Trước h e nghĩ không khai báo gì thì tính toán ra số liệu cho hàm,tự nó "phắn" đi cơ ^^
Hayza,vậy là bài toán trang đầu e đưa ra đã được giải quyết xong và "gần rốt ráo"..Chuẩn bị nghĩ ra bài mới nhờ các bác hướng dẫn thôi.
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#68 nguyentuyen6

nguyentuyen6

    biết lệnh chamfer

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

Đã gửi 28 September 2010 - 10:28 AM

Mình có đoạn líp như thế này để test mấy cái hàm con dùng cho tiện

(defun exec (func ss) 
(setq i 0)
(while (< i (sslength ss))
  (setq name_ss (ssname ss i));
(func)
(setq i (1+ i))
)
)
;================================
(defun moddxf ()
(setq dxf 50)
(entmod (subst (cons dxf newrad) (assoc dxf (entget name_ss)) (entget name_ss))))
;================================
(defun c:rot(/ name_ss newrad)
(setq ss (ssget '((0 . "*text")))
newrad (getangle "\nNhap goc quay: ")
)
(exec moddxf ss);; sua toan bo DXF cho tap chon ss
);_ end defun


>> Cha.y ra^'t to^'t

Nhưng khi mình muốn khái quát hơn nữa cái hàm moddxf lên 1 bậc bằng cách sửa thành:

(defun moddxf (dxf) 
(entmod (subst (cons dxf newrad) (assoc dxf (entget name_ss)) (entget name_ss))))

Và sửa ở hàm rot là:

(defun c:rot(/ name_ss newrad)
......................
(exec (moddxf 50) ss);; sua toan bo DXF cho tap chon ss
);_ end defun


Thì khi chạy nó lại báo lỗi : ; error: bad argument type: lentityp nil

Có bác nào sửa giúp mình với.
  • 0

Lisp In bản vẽ hàng loạt:
http://www.cadviet.c...ndpost&p=139860


#69 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

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

Đã gửi 28 September 2010 - 10:56 AM

[quote name='nguyentuyen6' post='109881' date='Sep 28 2010, 10:28']......
Nhưng khi mình muốn khái quát hơn nữa cái hàm moddxf lên 1 bậc bằng cách sửa thành:


(defun exec (ss)
(setq i 0)
(while (< i (sslength ss))
  (setq name_ss (ssname ss i));
(moddxf 50)
(setq i (1+ i))
)
)
(defun moddxf (dxf)
(entmod (subst (cons dxf newrad) (assoc dxf (entget name_ss)) (entget name_ss)))
)
(defun c:rot(/ name_ss newrad)
(setq ss (ssget '((0 . "*text")))
newrad (getangle "\nNhap goc quay: ")
)
(exec ss)
);_enddefun

  • 1

#70 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 28 September 2010 - 09:37 PM

Mình có đoạn líp như thế này để test mấy cái hàm con dùng cho tiện

(defun exec (func ss) 
(setq i 0)
(while (< i (sslength ss))
  (setq name_ss (ssname ss i));
(func)
(setq i (1+ i))
)
)
;================================
(defun moddxf ()
(setq dxf 50)
(entmod (subst (cons dxf newrad) (assoc dxf (entget name_ss)) (entget name_ss))))
;================================
(defun c:rot(/ name_ss newrad)
(setq ss (ssget '((0 . "*text")))
newrad (getangle "\nNhap goc quay: ")
)
(exec moddxf ss);; sua toan bo DXF cho tap chon ss
);_ end defun


>> Cha.y ra^'t to^'t

Nhưng khi mình muốn khái quát hơn nữa cái hàm moddxf lên 1 bậc bằng cách sửa thành:

(defun moddxf (dxf) 
(entmod (subst (cons dxf newrad) (assoc dxf (entget name_ss)) (entget name_ss))))

Và sửa ở hàm rot là:

(defun c:rot(/ name_ss newrad)
......................
(exec (moddxf 50) ss);; sua toan bo DXF cho tap chon ss
);_ end defun


Thì khi chạy nó lại báo lỗi : ; error: bad argument type: lentityp nil

Có bác nào sửa giúp mình với.

Chào bạn nguyentuyen6,
Bác Tue_NV đã sửa cho bạn rồi. Tuy nhiên mình vẫn muốn nói một chút về lý do cái của bạn không chạy.
1/- Bạn chú ý: Ở hàm
(defun moddxf (dxf)
(entmod (subst (cons dxf newrad) (assoc dxf (entget name_ss)) (entget name_ss))))
Bạn đã xác định nó có một biến toàn cục là dxf. Tuy nhiên hàm này còn sử dụng tới cái biến name_ss nữa mà biến này lại là đối số của hàm entget. Do vậy lisp sẽ hiểu rằng biến này phải là một ename.
Mà vì bạn không khai báo nó là biến cục bộ nên mặc nhiên nó sẽ tồn tại trong toàn bộ chương trình của bạn.
Khi sử dụng vào hàm con (exec ......) thì bạn thấy rằng theo định nghĩa của hàm này cái hàm (func) của nó đâu có biến toàn cục nào trong khi cái (moddxf ...) của bạn lại dùng biến dxf.
Vậy nên lisp mới trả lời bạn là ; error : bad argument type: lentityp nil , nghĩa là lisp bị lỗi vì sai loại đối số giá trị của đối số đưa vào là nil hay là vô nghĩa bạn ạ.
Hy vọng rằng bạn sẽ tránh được cái lỗi này khi làm lisp. Chúc bạn thành công.
  • 2
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#71 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 28 September 2010 - 10:15 PM

Híc,e có ý thế này,khi ngồi đọc code trên,dù khá ngắn,nhưng e cũng phải rất đau đầu.Mọi người không có thói quen chú thích chức năng của từng dòng bên cạnh thì phải :(..Nếu thế thì chỉ có minh dễ học được thôi,chứ "cùng" e hơi khó.Vậy rất rất mong các bác đề chú thích nhỏ nhỏ bên mỗi dòng code dài,để ng đọc mương tượng ra trước cách xử ký của code.
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#72 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 28 September 2010 - 11:37 PM

Híc,e có ý thế này,khi ngồi đọc code trên,dù khá ngắn,nhưng e cũng phải rất đau đầu.Mọi người không có thói quen chú thích chức năng của từng dòng bên cạnh thì phải :(..Nếu thế thì chỉ có minh dễ học được thôi,chứ "cùng" e hơi khó.Vậy rất rất mong các bác đề chú thích nhỏ nhỏ bên mỗi dòng code dài,để ng đọc mương tượng ra trước cách xử ký của code.

Hề hề hề,
Quả có thế thật. Thực ra khi mình mới học lisp mình cũng toàn phải ngồi đọc từng dòng code rồi ghi chú ra bên cạnh cái mà mình hiểu. Nhưng dần dần thì cái hiểu ấy nó ngấm vào rồi nên cái bệnh lười nó lại nổi lên, thế là chả thèm ghi chú nữa. Mặt khác quá trình viết lisp hoàn toàn không dễ như khi đọc, vậy nên lười được chút nào hay chút đó (để còn nhanh nhanh được ....... lười mà). Mặc dù cái việc ghi chú ấy nó chả lâu hơn song chả ai ghi chú khi đang viết cả vì có biết là nó đúng hay sai đâu. Vậy nên phải sau khi chạy thử mới có kết luận là lisp có dùng được hay không. Đến lúc đó mà ngồi ghi chú lại cả một trang lisp thì quả là ....không khoái bạn ạ.
Vậy nên có nhẽ cách tốt nhất để học có lẽ lại là chính người học phải tập đọc và hiểu các code cho nó ky kỹ, đừng cưỡi ngựa xem hoa, đừng có đọc lớt phớt rồi tự cho là mình hiểu rồi và cứ thế dùng ẩu mà chả hiểu vì sao lại phải viết như vậy. Có thế mới vỡ dần ra cái chưa biết của mình và mới vận dụng lisp tốt được. Trong quá trình đọc code, chỗ nào đã hiểu thì thôi, còn chỗ nào chưa hiểu thì ghi chú lại và post lên hỏi lại, chắc chắn như vậy sẽ hiệu quả hơn là chỉ đọc những lời ghi chú của người viết (Vì đôi khi người viết cũng ẩu mà). Cứ lấy mình ra làm ví dụ, có nhiều lisp mình viết thừa do quá trình viết phải sửa đi sửa lại, và những chỗ thừa mình cũng ngại xóa nữa, xong rồi chạy thử thấy nó tạm ổn thì post lên thôi chứ cũng ngại ngồi làm lại cho nó ra cái vẻ pro bạn ạ. Và cũng vì vậy, mình mãi mãi vẫn chỉ là thằng học mót chứ chả thể pro tí nào.
Hề hề hề.....
  • 2
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#73 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 29 September 2010 - 12:23 AM

Nhưng dù sao ghi chú cũng là một cách để chính người viết soát lỗi của mình mà ^^
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#74 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 29 September 2010 - 01:12 AM

Các bác cho e hỏi cách lấy cross selection từ trái qua của 2 tọa độ góc.E định lấy tập hợp tất cả đối tượng trong 1 hình CN ấy mà.Chắc cái này chỉ cần quét 1 phát là được.Còn tương lai là e muốn chọn tất cả các tập hợp đối tượng trong 1 hình pl khép kín,hoặc tròn chẳng hạn.Dùng selection theo wpolygon được không ạ (các đối tượng này đã bị tách rời với bên ngoài bởi lệnh extrim).Với hình góc cạnh thì còn lấy được các điểm mút,chứ hình tròn thì ..
Nếu được 1lsp mẫu thì tốt quá :">

Phần này e đã vọc được đến đây thì bí,mong các bác chỉ dẫn tiếp.Tình hình e vướng phải là như sau ạ:
- Với đường tròn e đang xúc tiến,có lẽ mai xong.Hiện tại mới là PL góc cạnhkín đơn thuần.
- Chọn tập các đối tượng trong đường màu vàng.E muốn chọn cả đường màu đỏ nhưng chưa biết xử lý thế nào.Nếu để "CP" thì nó lại chọn thêm cả 2 thằng màu xanh.Để "WP" như hiện tại thì nó bỏ qua thằng đỏ,mặc dù chủ quan thằng đỏ vẫn "ở trong" HCN (có 1 đầu chạm vào thôi)
- E muốn để nó là 1 lệnh độc lập,khi sử dụng xong thì hiện các grid lên cho mình thao tác các bước tiếp theo(giống như Fast select của Express ý ạ), chứ không phải gọi qua transparent,hoặc dùng tham số P khi sử dụng các câu lệnh khác nữa..E k biết có phải lên quan đến các biến pickfirst hay highlight không ạ :( .Mong các bác hướng dẫn e với
Hình đã gửi
(defun C:ffs ( / ent i elist ppl)
(BatDau)
(setq ent (car(entsel "\nHay chon duong PL (tru duong tron): ")))
(setq i 0
elist (entget ent))
(if (zerop (getvar "CMDACTIVE")) (command "_select" ));Lay trang thai cmd de select khi thuc hien lenh khac
(command "_wp")
(repeat (length elist)
(setq ppl (nth i elist)
i (1+ i))
(if (= (car ppl) 10) (command (trans (cdr ppl) 0 1)));Tranh UCS quay
)
(command "")
;(command "'fs" ent)
(KetThuc)
)
;;;;;;;;;;;;;;;;;
(defun BatDau()
(setq OldOs (getvar "osmode")
Oldcmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
)
(defun KetThuc()
(setvar "osmode" OldOs)
(setvar "cmdecho" Oldcmd)
(princ)
)

PS: e "mượn tạm" cái (batdau),(ketthuc) cua bac nguyentuyen6 để đỡ type ^^
  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#75 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 29 September 2010 - 11:37 AM

Vấn đề đường tròn e cũng giải quyết tạm thế này..Còn những vấn đề kia vẫn vướng.Không những thế còn thêm 1 vấn đề là :e muoốn chọn nhiều pl chứ không phải chỉ thực hiện 1 lần.mong các bác giúp đỡ :(
(defun C:ffs ( / ent i elist ppl cen rad gocquay)
(BatDau)
(setq ent (car(entsel "\nHay chon duong PL : ")))
(setq i 0
elist (entget ent))
(if (zerop (getvar "CMDACTIVE")) (command "_select" ));Lay trang thai cmd de select khi thuc hien lenh khac
(command "_wp")

;;;DUONG TRON
(if (= (cdr(assoc 0 elist)) "CIRCLE")
(progn
(setq cen (cdr (assoc 10 elist))
rad (cdr (assoc 40 elist))
)
(repeat 360
(setq gocquay (polar cen (* i (/ pi 180)) rad) ;thuc hien 360 lan,moi lan 1 do
i (1+ i))
(command (trans gocquay 0 1))
)); else

;;;;;;;;pl
(repeat (length elist)
(setq ppl (nth i elist)
i (1+ i))
(if (= (car ppl) 10) (command (trans (cdr ppl) 0 1)));Tranh UCS quay
)
)
(command "")
;(command "_select" "A" ent) ;-----> Dong nay e sai ma chua biet o dau
(KetThuc)
)
;;;;;;;;;;;;;;;;;
(defun BatDau()
(setq OldOs (getvar "osmode")
Oldcmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
)
(defun KetThuc()
(setvar "osmode" OldOs)
(setvar "cmdecho" Oldcmd)
(princ)
)

  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#76 phamngoctukts

phamngoctukts

    biết lệnh adcenter

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

Đã gửi 29 September 2010 - 11:45 AM

Vấn đề đường tròn e cũng giải quyết tạm thế này..Còn những vấn đề kia vẫn vướng.Không những thế còn thêm 1 vấn đề là :e muoốn chọn nhiều pl chứ không phải chỉ thực hiện 1 lần.mong các bác giúp đỡ :(

(defun C:ffs ( / ent i elist ppl cen rad gocquay)
(BatDau)
(setq ent (car(entsel "\nHay chon duong PL : ")))
(setq i 0
elist (entget ent))
(if (zerop (getvar "CMDACTIVE")) (command "_select" ));Lay trang thai cmd de select khi thuc hien lenh khac
(command "_wp")

;;;DUONG TRON
(if (= (cdr(assoc 0 elist)) "CIRCLE")
(progn
(setq cen (cdr (assoc 10 elist))
rad (cdr (assoc 40 elist))
)
(repeat 360
(setq gocquay (polar cen (* i (/ pi 180)) rad) ;thuc hien 360 lan,moi lan 1 do
i (1+ i))
(command (trans gocquay 0 1))
)); else

;;;;;;;;pl
(repeat (length elist)
(setq ppl (nth i elist)
i (1+ i))
(if (= (car ppl) 10) (command (trans (cdr ppl) 0 1)));Tranh UCS quay
)
)
(command "")
;(command "_select" "A" ent) ;-----> Dong nay e sai ma chua biet o dau
(KetThuc)
)
;;;;;;;;;;;;;;;;;
(defun BatDau()
(setq OldOs (getvar "osmode")
Oldcmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
)
(defun KetThuc()
(setvar "osmode" OldOs)
(setvar "cmdecho" Oldcmd)
(princ)
)

Bạn thay ssget xong dùng while duyệt qua từng pl thay vì dùng entsel
  • 0
Tất cả vì sự phát triển của diễn đàn ...
Cám ơn đừng nói lời suông mà hãy nhấn Hình đã gửi!

#77 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 29 September 2010 - 03:12 PM

Vấn đề đường tròn e cũng giải quyết tạm thế này..Còn những vấn đề kia vẫn vướng.Không những thế còn thêm 1 vấn đề là :e muoốn chọn nhiều pl chứ không phải chỉ thực hiện 1 lần.mong các bác giúp đỡ :(

(defun C:ffs ( / ent i elist ppl cen rad gocquay)
(BatDau)
(setq ent (car(entsel "\nHay chon duong PL : ")))
(setq i 0
elist (entget ent))
(if (zerop (getvar "CMDACTIVE")) (command "_select" ));Lay trang thai cmd de select khi thuc hien lenh khac
(command "_wp")

;;;DUONG TRON
(if (= (cdr(assoc 0 elist)) "CIRCLE")
(progn
(setq cen (cdr (assoc 10 elist))
rad (cdr (assoc 40 elist))
)
(repeat 360
(setq gocquay (polar cen (* i (/ pi 180)) rad) ;thuc hien 360 lan,moi lan 1 do
i (1+ i))
(command (trans gocquay 0 1))
)); else

;;;;;;;;pl
(repeat (length elist)
(setq ppl (nth i elist)
i (1+ i))
(if (= (car ppl) 10) (command (trans (cdr ppl) 0 1)));Tranh UCS quay
)
)
(command "")
;(command "_select" "A" ent) ;-----> Dong nay e sai ma chua biet o dau
(KetThuc)
)
;;;;;;;;;;;;;;;;;
(defun BatDau()
(setq OldOs (getvar "osmode")
Oldcmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
)
(defun KetThuc()
(setvar "osmode" OldOs)
(setvar "cmdecho" Oldcmd)
(princ)
)

Hề hề hề,
Cái dòng sai của bạn có nhẽ là do cái tham số "A" của lệnh select. Cái lệnh này mình đâu thấy có tham số chi đâu?????
Còn cái biến ent ở đây bạn lấy thế nào vậy???? Lấy từ đầu chương trình à???
  • 0
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#78 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 29 September 2010 - 03:20 PM

Chẳng là e muốn chọn cả thêm tập biên ý mà.Ent đúng là e lấy từ đầu chương trình :(
Còn lệnh Select có rất nhiều tham số mà ạ :(

Command: _select

Select objects: ?


*Invalid selection*
Expects a point or
Window/Last/Crossing/BOX/ALL/Fence/WPolygon/CPolygon/Group/Add/Remove/Multiple/P
revious/Undo/AUto/SIngle/SUbobject/Object


  • 1

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#79 phamngoctukts

phamngoctukts

    biết lệnh adcenter

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

Đã gửi 29 September 2010 - 03:44 PM

Chẳng là e muốn chọn cả thêm tập biên ý mà.Ent đúng là e lấy từ đầu chương trình :(
Còn lệnh Select có rất nhiều tham số mà ạ :(

Sao lệnh select của mình trả thấy tham số già nhể. Bạn dùng cad version bao nhiêu?
  • 0
Tất cả vì sự phát triển của diễn đàn ...
Cám ơn đừng nói lời suông mà hãy nhấn Hình đã gửi!

#80 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 29 September 2010 - 03:52 PM

Thú thực với bác phamngoctukts là hnay cái này là cái đầu tiên e bắt đầu vào vòng lặp(vì e đã học lt đâu ^^),và ssget thì vẫn chưa biết dùng thành thạo :( Bác hướng dẫn cho e trong trường hợp này được k ạ?
E cứ tưởng thế này là được,nào ngờ chưa phải..Ssget trả về tập entity chọn đúng không ạ :).Vậy nó dạng ntn ạ ?
E sửa thế này rồi...sai be bét :( Dòng 1,2 có vấn đề e chưa biết.Tham khảo 1 số code e thấy chọn cả lwpolyline có nghĩa là j ạ,cóđiều gì khác biệt ạ
(defun C:ffs ( / i ilist elist ppl cen rad gocquay)
(BatDau)
(setq elist (ssget '((0 . "*POLYLINE"))));;;;;;;;;;;;;;;;;1
(while (< ilist (sslength elist));;;;;;;;;;;;;;;;;;;;;;;;;;;;;2
(setq i 0)
(if (zerop (getvar "CMDACTIVE")) (command "_select" ));Lay trang thai cmd de select khi thuc hien lenh khac
(command "_wp")

;;;DUONG TRON
(if (= (cdr(assoc 0 elist)) "CIRCLE")
(progn
(setq cen (cdr (assoc 10 elist))
rad (cdr (assoc 40 elist))
)
(repeat 360
(setq gocquay (polar cen (* i (/ pi 180)) rad) ;thuc hien 360 lan,moi lan 1 do
i (1+ i))
(command (trans gocquay 0 1))
)); else

;;;;;;;;pl
(repeat (length elist)
(setq ppl (nth i elist)
i (1+ i))
(if (= (car ppl) 10) (command (trans (cdr ppl) 0 1)));Tranh UCS quay
)
)
(command "")
(setq ilist (1+ ilist))
);ket thuc vong while
;(command "'fs" ent)
(KetThuc)
)
;;;;;;;;;;;;;;;;;
(defun BatDau()
(setq OldOs (getvar "osmode")
Oldcmd (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
)
(defun KetThuc()
(setvar "osmode" OldOs)
(setvar "cmdecho" Oldcmd)
(princ)
)

  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC