明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1687|回复: 2

急!急!急!谁可以帮我改一下一个LISP自动生成程序?

[复制链接]
发表于 2004-8-19 16:17:00 | 显示全部楼层 |阅读模式

(defun c:zdt8( / pts pt pti ptn ptc ang params)
(init)
(setq h 3.5)
(setq Scale (getstring "\n请输入比例尺<1:200>:"))
(if (= Scale "")
(progn
(setq Scale "1:200")
(setq nScale 1)
)
(progn
(setq nScale (/ (atof scale) 200))
(setq scale (strcat "1:" scale))
)
)
(setq ent (car (entsel "\n请选择图形...")))
(setq pts (getpl ent))
(if (cadr (setq pt (Order (reverse pts))))
(setq pts (reverse pts))
)
(setq pt (car pt))
(command "_.pedit" ent "w" 0.7 "")
(setcolor ent 1)
(OpPts pts pt h nscale)
(getEnter ent h nscale scale "8kh" (* nscale 154) (* nscale 92))
(princ "\n\nEnd!")
(restore)
(princ)
) 上面这个是我们用来制图的一个集标注和图框加载等各种程序于一体的宗地图自动生成程序的最后一部分,我想请大家帮我看一下,如何在里面加上一句,使得(setq h 3.5)里面所指的h的值能够根据输入的比例尺大小实现自动缩放,例如我在用1:200的比例尺时,h的值是3.5,当我使用1:400的时候,h的值就应该是7.0才对,请教谁可以帮我一把.这里面的h指的是标注文字的大小
发表于 2004-8-19 16:44:00 | 显示全部楼层
程序更改如下: (defun c:zdt8( / pts pt pti ptn ptc ang params)
(init)
(setq h 3.5)
(setq nScale (getint "\n请输入比例尺1:? <200> : "))
(setq nScale (if (= nScale nil) 200 nScale))
(setq Scale (strcat "1:" (itoa nScale)))
(setvar "dimscale" nScale);这里设定尺寸的总比例
(setq ent (car (entsel "\n请选择图形...")))
(setq pts (getpl ent))
(if (cadr (setq pt (Order (reverse pts))))
(setq pts (reverse pts))
)
(setq pt (car pt))
(command "_.pedit" ent "w" 0.7 "")
(setcolor ent 1)
(OpPts pts pt h nscale)
(getEnter ent h nscale scale "8kh" (* nscale 154) (* nscale 92))
(princ "\n\nEnd!")
(restore)
(princ)
)
发表于 2004-8-19 22:59:00 | 显示全部楼层
程序不全,缺少子程序!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-30 18:30 , Processed in 0.172380 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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