明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1744|回复: 4

请教meflying版主!

[复制链接]
发表于 2003-12-27 00:52:00 | 显示全部楼层 |阅读模式
请教meflying版主:
   我想对图中一些同名块以插入点进行缩放,该如何在LISP中构造选择集!?
发表于 2003-12-27 09:00:00 | 显示全部楼层
剛看你的貼, 剛寫一個, 可以合你用的,試試看 . 呵呵 :D



ROGRAM MAKE DATE 2003-12-27
(defun c:test( / blockname os ss ssa scale i a pt1)
  (setq os (getvar "osmode"))(setvar "osmode" 0)(setvar "cmdecho" 0)
  (setq blockname (getstring "\n請輸入要scale圖塊的名或回車選擇塊:"))
  (if (= blockname "")
    (setq ss (ssget '((0 . "INSERT"))))
    (setq ssa (ssget "x" (LIST (CONS 0 "INSERT")(CONS 2  blockname)))))
  (IF (= ssa nil )(setq ssa (ssget "x" (LIST (CONS 0 "INSERT")(assoc 2 (entget(ssname ss 0)))))))
  (setq scale (getdist "\n輸入縮放比例:"))
  (setq i 0)
  (command "_.undo" "_group")
  (Repeat (sslength ssa)
    (setq a (ssname ssa i))
    (setq pt1 (cdr (assoc 10 (entget a))))
    (command ".scale" a "" pt1 scale )
    (setq i (1+ i)))
  (command "_.undo" "_end")
  (setvar "osmode" 1)(setvar "cmdecho" 1)
  (princ "\r進行同名塊縮放功能運行成功了, 歡迎使用哦.")
  (princ))
发表于 2003-12-27 11:59:00 | 显示全部楼层
应该在一个选择集里再过滤,要不然我可能是想一部分的块进行缩放,而不是文件里所有的块对吧:)
 楼主| 发表于 2003-12-27 12:54:00 | 显示全部楼层
好用!!谢谢了!BDYCAD版主.
    祝大家新年快乐!!
发表于 2003-12-27 13:48:00 | 显示全部楼层
三樓的意思我也寫過. 但是如果和你的意思一個樣. 那程序就不用設給用輸入塊名的. 如做的通用點就要寫成由用戶自行選擇圖塊進行縮放. 但是我認為根據圖塊日常使用的習慣(同一個名的圖塊的外形大小和屬性應是一樣), 因我考慮多數人在圖中同名的圖塊都是統一大小.  所以這樣子就比較合用吧.  
           另外三樓的提議很好. 呵呵 :D
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 10:36 , Processed in 0.159223 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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