明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1757|回复: 3

[LISP程序]:求助vlisp!

[复制链接]
发表于 2006-4-8 18:42:00 | 显示全部楼层 |阅读模式
我是小菜鸟,自己看了两天书编了一个程序,希望实现这样一个功能:输入实际起始点,输入实际终点,输入底数,输入实际要间隔的距离,回车后,电脑自动在这两个点之间画一条条的竖线,使这些竖线的横坐标成对数。比如说,我指定了0为起始点,200为终点,2为底数,10为实际要间隔的距离,然后一回车,图上给我画出一系列的竖线:这些竖线距离起始点的距离分别是log2(10)(以二为底十的对数),log2(20)(以二为底20的对数),log2(30),log2(40),log2(50),log2(60),log2(70)……
但是不知道怎么回事,总是画不出来,不知道程序错在什么地方,希望有高人给我指点一下下~~
这是我的程序:
(defun C:plotlog ( / il el unit offhead)
(setq p0 (getpoint"\n指定起点: "))
(setq il (getreal"\n输入起始长度: "))
(setq el (getreal"输入终点长度: "))
(setq unit (getreal"输入格距: "))
(setq base (getreal"输入基底: "))
(setq tl il)
(setq p1 (polar p0 0 (log il)))
(while ( <= tl el)
  (setq p2 (polar p1 ( / pi 2.0) 5.0))
  (command "line" p1 p2 "" )
  (setq tl ( + tl unit))
  (setq offhead ( / (log tl) (log base)))
  (setq p1 (polar p0 0 offhead))
)
)
我本来想用offset,但是不会用command 函数调用~,如果有哪位ggjj可以用offset来实现这个功能也可以。
希望有高人帮帮我!小弟感激不尽啊!!
发表于 2006-4-9 01:13:00 | 显示全部楼层
  1. (defun C:plotlog ( / il el unit offhead)
  2. (setq p0 (getpoint"\n指定起点: "))
  3. (setq il (getreal"\n输入起始长度: "))
  4. (setq el (getreal"输入终点长度: "))
  5. (setq unit (getreal"输入格距: "))
  6. (setq base (getreal"输入基底: "))
  7. (setq be (log base))
  8. (setq tl il p1 (polar p0 (/ (log il) be))
  9. (setvar "OSMODE" 0)
  10. (while (<= tl el)
  11.   (command "line" p1 (POLAR P1 (/ PI 2) 5) "")
  12.   (setq tl (+ tl unit)  p1 (polar p0 0 (/ (log tl) be)))
  13. )
  14. (PRINC)
  15. )
发表于 2006-4-9 09:09:00 | 显示全部楼层
  1. (defun C:plotlog (/ il el unit offhead)
  2.   (setq p0 (getpoint "\n指定起点: "))
  3.   (setq il (getreal "\n输入起始长度: "))
  4.   (setq el (getreal "输入终点长度: "))
  5.   (setq unitt (getreal "输入格距: "))
  6.   (setq base (getreal "输入基底: "))
  7.   (if (/= il 0.0)
  8.     (setq p1 (polar p0 0 (log il)))
  9.     (setq p1 p0)
  10.   )
  11.   (setq os (getvar "osmode"))
  12.   (setvar "osmode" 0)
  13.   (while (<= il el)
  14.     (setq p2 (polar p1 (/ pi 2.0) 5.0))
  15.     (command "line" p1 p2 "")
  16.     (setq il (+ il unitt))
  17.     (setq offhead (/ (log il) (log base)))
  18.     (setq p1 (polar p0 0 offhead))
  19.   )
  20.   (setvar "osmode" os)
  21.   (princ)
  22. )
 楼主| 发表于 2006-4-10 09:24:00 | 显示全部楼层

谢谢两位大哥!我的问题已经解决了!真的非常感谢!!!!

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

本版积分规则

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

GMT+8, 2025-8-8 04:54 , Processed in 0.160558 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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