找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 322|回复: 2

[每日一码] 自动生成栅格网

[复制链接]

已领礼包: 19个

财富等级: 恭喜发财

发表于 2021-1-14 23:55:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
自动生成栅格网

搜狗截图20210114234533.png

  1. (defun cbox (ct1 ct2 ct3 ct4 px1 px2 /)
  2.   (setq cross1 nil cross2 nil)
  3.   (setq cross1 (inters ct1 ct2 px1 px2))
  4.   (if cross1 (setq cross2 (inters ct2 ct3 px1 px2)) (setq cross1 (inters ct2 ct3 px1 px2)))
  5.   (if cross1 (if (not cross2) (setq cross2 (inters ct3 ct4 px1 px2))) (setq cross1 (inters ct3 ct4 px1 px2)))
  6.   (if cross1 (if (not cross2) (setq cross2 (inters ct4 ct1 px1 px2))) (setq cross1 (inters ct4 ct1 px1 px2)))
  7.   (setq cross (list))
  8.   (setq mnx (min (car cross1) (car cross2)))
  9.   (setq mny (min (cadr cross1) (cadr cross2)))
  10.   (setq mxx (max (car cross1) (car cross2)))
  11.   (setq mxy (max (cadr cross1) (cadr cross2)))
  12.   (setq cross1 (list mnx mny))
  13.   (setq cross2 (list mxx mxy))
  14.   (setq cross (cons cross2 cross))
  15.   (setq cross (cons cross1 cross))
  16. )

  17. (defun c:zgrid()

  18.   (setq dz (getvar "DIMZIN"))
  19.   (setq cmde (getvar "CMDECHO"))
  20.   (setq osme (getvar "OSMODE"))
  21.   (setq ortm (getvar "ORTHOMODE"))
  22.   (setq clay (getvar "CLAYER"))
  23.   (setvar "DIMZIN" 0)
  24.   (setvar "CMDECHO" 0)
  25.   (setvar "OSMODE" 32)

  26.   (setq ss nil c1 nil c2 nil c3 nil c4 nil)

  27.   (setq c1 (getpoint "\nFirst Corner : "))
  28.   (setq c2 (getpoint "\nSecond Corner : "))
  29.   (grdraw c1 c2 2 0)
  30.   (setq c3 (getpoint "\nThird Corner : "))
  31.   (grdraw c2 c3 2 0)
  32.   (setq c4 (getpoint "\nFourth Corner : "))
  33.   (grdraw c3 c4 2 0)
  34.   (grdraw c4 c1 2 0)
  35.   (setq spacing (getreal "\nSpacing : <Default=100> "))
  36.   (if (or (not spacing) (= spacing 0)) (setq spacing 100))
  37.   (setq txtht (getreal "\nText Height : <Default=2.5> "))
  38.   (if (or (not txtht) (= txtht 0)) (setq txtht 2.5))

  39.   (setvar "OSMODE" 0)

  40.   (setq ptx1 (car c1))
  41.   (setq ptx2 (car c2))
  42.   (setq ptx3 (car c3))
  43.   (setq ptx4 (car c4))
  44.   (setq pty1 (cadr c1))
  45.   (setq pty2 (cadr c2))
  46.   (setq pty3 (cadr c3))
  47.   (setq pty4 (cadr c4))
  48.   (setq minx (min ptx1 ptx2 ptx3 ptx4))
  49.   (setq miny (min pty1 pty2 pty3 pty4))
  50.   (setq maxx (max ptx1 ptx2 ptx3 ptx4))
  51.   (setq maxy (max pty1 pty2 pty3 pty4))
  52.   (setq curx (- (* (fix (/ minx spacing)) spacing) spacing))
  53.   (setq cury (- (* (fix (/ miny spacing)) spacing) spacing))

  54.   (command "layer" "n" "grid,grdtext" "")
  55.   (command "layer" "c" 8 "grid" "")
  56.   (command "layer" "c" 2 "grdtext" "")

  57.   (while (< curx maxx)
  58.      (if (> curx minx) (progn
  59.         (setq pt1 (list curx miny))
  60.         (setq pt2 (list curx maxy))
  61.         (setq ptlist (cbox c1 c2 c3 c4 pt1 pt2))
  62.         (setq pt3 (car ptlist))
  63.         (setq pt4 (cadr ptlist))
  64.         (command "layer" "s" "grid" "")
  65.         (command "line" pt3 pt4 "")
  66.         (setq tx1 (list (- (car pt3) (/ txtht 2)) (+ (cadr pt3) txtht)))
  67.         (command "layer" "s" "grdtext" "")
  68.         (command "text" tx1 txtht 90 (strcat (rtos curx 2 0) " E") "")
  69.      ))
  70.         (setq curx (+ curx spacing))
  71.   )

  72.   (while (< cury maxy)
  73.      (if (> cury miny) (progn
  74.         (setq pt1 (list minx cury))
  75.         (setq pt2 (list maxx cury))
  76.         (setq ptlist (cbox c1 c2 c3 c4 pt1 pt2))
  77.         (setq pt3 (car ptlist))
  78.         (setq pt4 (cadr ptlist))
  79.         (command "layer" "s" "grid" "")
  80.         (command "line" pt3 pt4 "")
  81.         (setq tx1 (list (+ (car pt3) txtht) (+ (cadr pt3) (/ txtht 2)) ))
  82.         (command "layer" "s" "grdtext" "")
  83.         (command "text" tx1 txtht 0 (strcat (rtos cury 2 0) " N") "")
  84.      ))
  85.         (setq cury (+ cury spacing))
  86.   )
  87. (command "pline" c1 c2 c3 c4  "c")
  88.   (princ "Your Comments are appreciated - Copyright Imtiyaz Mukadam 2001\n")

  89.   (setvar "DIMZIN" dz)
  90.   (setvar "CMDECHO" cmde)
  91.   (setvar "OSMODE" ortm)
  92.   (setvar "ORTHOMODE" ortm)
  93.   (setvar "CLAYER" clay)
  94.   (command "zoom" "e")
  95. )
  96. (princ "Setup Grids and coordinates - Copyright Imtiyaz Mukadam 2001\n")
  97. (princ "type ZGRID to run the Program\n")


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 914个

财富等级: 财运亨通

发表于 2021-1-15 05:40:16 | 显示全部楼层
谢谢分享,学习了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3904个

财富等级: 富可敌国

发表于 2021-1-16 09:08:13 | 显示全部楼层
做一个热心并受欢迎的人
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-4-24 17:30 , Processed in 0.369817 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表