明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2198|回复: 7

一个关于块的lsp,呵呵,是转抄来的

[复制链接]
发表于 2002-11-24 16:50:00 | 显示全部楼层 |阅读模式
(defun C:IP1 ()
  (if (setq SSBLK (car (entsel "ICK BLOCK TO REDEFINE POINT...")))
    (progn
      (command "UNDO" "BE")
      (command "UCS" "")
      (EB SSBLK)
      (setq INSPNT (getpoint "NEW INSERTION POINT"))
      ;;calculated second mirror point
      (setq
        INS_X
         (list
           (+ (nth 0 INSPNT) (* -100 (sin ROTRAD)))
           (+ (nth 1 INSPNT) (* 100 (cos ROTRAD)))
           (nth 2 INSPNT)
         ) ;_ end of LIST
      ) ;_ end of SETQ
      (setq
        INS_Y
         (list
           (+ (nth 0 INSPNT) (* 100 (cos ROTRAD)))
           (+ (nth 1 INSPNT) (* 100 (sin ROTRAD)))
           (nth 2 INSPNT)
         ) ;_ end of LIST
      ) ;_ end of SETQ
      (setq OLDSNP (getvar "osmode"))
      (setvar "osmode" 0)
      (NN)
      (setvar "osmode" OLDSNP)
      (command "UCS" "")
    ) ;_ end of progn
    (prompt "\nNOTHING WAS SELECTED")
  ) ;_ end of if
)

(defun NN ()
  (setq CMDECHO (getvar "CMDECHO"))
  (setvar "CMDECHO" 0)
  (setq REGENMODE (getvar "REGENMODE"))
  (setvar "REGENMODE" 0)
  (setq NEWITM (entnext ENLAST))        ;select new entities name after edit
  (while (/= NEWITM NIL)
    (ssadd NEWITM SSTOT)                ;add new items to block selection set
    (setq NEWITM (entnext NEWITM))
  ) ;_ end of WHILE
  (command "SCALE" SSTOT "" INSPNT (/ 1 SCALE))
  (if (< SCAL-X 0)
    (command "MIRROR" SSTOT "" INSPNT INS_X "Y")
  ) ;_ end of IF
  (if (< SCAL-Y 0)
    (command "MIRROR" SSTOT "" INSPNT INS_Y "Y")
  ) ;_ end of IF
  (command "ROTATE" SSTOT "" INSPNT (* -1 ROT))
  (command "BLOCK" BNAME "Y" INSPNT SSTOT "")
  (setq ALLBLK NIL)
  (setq ALLBLK (ssget "X" (list (cons 2 BNAME))))
                                        ;create sel. set from all blocks with thet name
  (if (/= ALLBLK NIL)
    (progn
      (setq SSLENB (sslength ALLBLK))
      ;;NUMBER OF BLOCKS
      (while (> SSLENB 0)
        (setq BCHECK (ssname ALLBLK (setq SSLENB (1- SSLENB))))
                                        ;exstact name from sel. set
        (entupd BCHECK)
      )                                        ;WHILE
    )                                        ROGN
  )                                        ;IF
  (setq SSTOT NIL)
  (setq ALLBLK NIL)
  (command "INSERT" BNAME INSPNT SCAL-X SCAL-Y ROT)
  (command "CHPROP" (entlast) "" "LA" BLAYER "")
  (setq CHEK 0)
  (setvar "REGENMODE" REGENMODE)
  (setvar "CMDECHO" CMDECHO)
)
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2003-12-25 19:22:00 | 显示全部楼层
好象每个写程序的人都不爱写注解,这是个不好的习惯哟!
发表于 2003-12-25 19:36:00 | 显示全部楼层
花锦绣发表于2003-12-25 19:22:00好象每个写程序的人都不爱写注解,这是个不好的习惯哟!


有注解的,分号后面。
发表于 2003-12-25 20:01:00 | 显示全部楼层
eb 是一个什么函数
发表于 2003-12-25 20:05:00 | 显示全部楼层
eb 是一个什么函数
发表于 2003-12-26 09:32:00 | 显示全部楼层
楼主要抄也抄完成嘛
发表于 2003-12-26 22:38:00 | 显示全部楼层
呵呵,英文注释!
发表于 2003-12-27 00:39:00 | 显示全部楼层
用不了啊!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 10:40 , Processed in 0.177376 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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