乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 84|回复: 0

[编程交流] Grread-osnap

[复制链接]

12

主题

25

帖子

13

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
60
发表于 2022-7-5 17:55:58 | 显示全部楼层 |阅读模式
嗨,你好吗
 
我有一个lisp,它插入一个块,其中使用的是GRREAD。我想知道,当上一个insercción块GRREAD时,我是否可以保持激活osnap
 
  1.     (defun c:test (/ bname key grr ip lastpt ent)
  2.      (setvar "cmdecho" 0)
  3.      (while
  4.        (not (or (eq "" (setq bname (getstring t "\nBlock to Insert: "))) (tblsearch "BLOCK" bname)))
  5.         (princ "\nBlock not found.")
  6.      )
  7.      (while            ;  exit on ENTER or picked point
  8.        (cond ;;=====================================================
  9.         ((eq 2 (car (setq grr (grread t 7 0)))) ; keyboard input
  10.          (setq key (cadr grr))
  11.          (cond ;;-------------------------------------------
  12.           ((= key 13)      ; ENTER- where done here
  13.            (and ent (entdel ent))
  14.            (princ "\nUser Quit.")
  15.            nil         ; exit loop
  16.           )
  17.           ;;-------------------------------------------
  18.           ((member (chr key) '("H" "h")) ; Word entry  'Help'
  19.                   ;(Display_Help) ; your alert box routine
  20.            t         ; stay in loop
  21.           )
  22.           ((member (chr key) '("I" "i")) ; Insert with OSNAP
  23.            (vl-cmdf "_.move" ent "" "_non" lastpt)
  24.            (while (= (logand (getvar "cmdactive") 1) 1) (command pause))
  25.            nil         ; stay in loop
  26.           )
  27.           ((member (chr key) '("L" "l")) ; Left or CCW
  28.            (vl-cmdf "_.rotate" ent "" "_non" ip 90.0)
  29.            t         ; stay in loop
  30.           )
  31.           ((member (chr key) '("R" "r")) ; Right or CW
  32.            (vl-cmdf "_.rotate" ent "" "_non" ip -90.0)
  33.            t         ; stay in loop
  34.           )
  35.           ((member (chr key) '("B" "b")) ; Basepoint
  36.            (vl-cmdf "_.move" ent "" "_non" (getpoint "\nPick New Basepoint: ") "_non" ip)
  37.            t         ; stay in loop
  38.           )
  39.           ;;-------------------------------------------
  40.           ((princ "\nInvalid Keypress.") (princ (strcat msg str)))
  41.          )            ; end cond
  42.         )
  43.         ;;=====================================================
  44.         ((eq 3 (car grr))      ; point picked, make final star
  45.          (setq ip (cadr grr))
  46.          nil            ; exit
  47.         )
  48.         ;;=====================================================
  49.         ((eq 5 (car grr))      ; point from mouse, update object
  50.          (setq ip (cadr grr))
  51.          (if (null lastpt)      ; first time through
  52.            (progn (setq lastpt ip)
  53.              (vl-cmdf "_.-insert" bname "_S" 1.0 "_R" 0.0 "_non" ip)
  54.              (setq ent (entlast))
  55.            )
  56.          )
  57.          (if (> (distance ip lastpt) 0.00001)
  58.            (vl-cmdf "_.move" ent "" "_non" lastpt "_non" ip)
  59.          )
  60.          (setq lastpt ip)
  61.         )
  62.        )               ; end cond
  63.        ;;=====================================================
  64.      )               ; while
  65.      (redraw)
  66.      (princ)
  67.    )
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-12 23:50 , Processed in 0.449897 second(s), 54 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表