明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2047|回复: 2

[求助]飞哥,如何用LISP编写一个能够实现X、Y、Z方向上的不同比例缩放?

[复制链接]
发表于 2003-11-12 14:46:00 | 显示全部楼层 |阅读模式
发表于 2003-11-12 15:28:00 | 显示全部楼层
z上?是什么对象呢?
3DPLINE或LINE还好办,其余比较麻烦。
发表于 2003-11-12 16:47:00 | 显示全部楼层
;;;这是很久以前的程序,很多缺点!!
;;;调整对象XY比例
;;;程序设计:赖云龙;;;
;;;---------------;;;
(defun C:SCALEXY (/ holdosmode AA PT X Y PT1 PT2 L1 L2)
  (command "_.undo" "_be")
  (setq holdosmode (getvar "osmode"))
  (setvar "osmode" 39)
  (defun LL ()
    (setq PT1 (getpoint "\n参考长度基准点: "))
    (setq PT2 (getpoint PT1 "\n第二点: "))
    (setq L1 (distance PT1 PT2))
    (setq PT1 (getpoint "\n新的长度基准点: "))
    (setq PT2 (getpoint PT1 "\n第二点: "))
    (setq L2 (distance PT1 PT2))
  )
  (while (= AA NIL)
    (setq AA (ssget))
  )
  (setq PT (getpoint "\n基准点 : "))
  (setq X (getstring "\n<X比例系数>/参考(R) <1>: "))
  (cond
    ((= X "")
     (setq X 1)
    )
    ((or (= X "R") (= X "r"))
     (LL)
     (setq X (/ L1 L2))
    )
    (t
     (setq X (atof X))
    )
  )
  (setq        Y (getstring (strcat "\n<Y比例系数>/参考(R) <" (rtos X) ">: ")
          )
  )
  (cond
    ((= Y "")
     (setq Y 1)
    )
    ((or (= Y "R") (= Y "r"))
     (LL)
     (setq Y (/ L1 L2))
    )
  )
  (setq A (rtos (* (getvar "CDATE") 1E8)))
  (command "_.BLOCK" A PT AA "")
  (command "_.INSERT" A PT X Y "")
  ;(command "_.EXPLODE" "L")
  ;(prompt "\n")
  ;(command "_.purge" "b" A "n")
  (setvar "osmode" holdosmode)
  (command "_.undo" "_end")
  (princ)
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 06:28 , Processed in 0.232597 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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