乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 95|回复: 5

[编程交流] Lisp中的极性问题

[复制链接]

4

主题

14

帖子

10

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 11:51:15 | 显示全部楼层 |阅读模式
哈,第一个帖子。,
在我的空闲时间里,我只会Lisp程序一个半月,这是一个可以潜入的大世界。,。在我正在使用的LISP中,我想在钢板的侧视图DWG中创建一个孔的二维表示。(例如连接板:“线”“@24
问题是,经过深思熟虑和努力,我可以在正交角度一致地得到“孔”,但不是在所有其他角度。我不知道为什么。,
这是密码,我当然是新来的。,否则,解决这个问题就太好了。,任何“你应该这样做”都将不胜感激。。我仍在努力掌握所有的“怎么做”。
我希望我的代码标签是对的
 
使用vlax safearray的位置->可以使用的列表
不确定这是否是你想要的。我建议使用有意义的变量名
 
 
 
例如:ENDP-端点
 
同样有用的,大小写函数名
 
例如GETPOINT-GETPOINT(或java约定GETPOINT)
 
编辑:变量名POO,c'mon wtf
 
希望这有帮助
奥利
回复

使用道具 举报

37

主题

125

帖子

87

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
190
发表于 2022-7-6 12:10:45 | 显示全部楼层
很抱歉回复了这么长时间,我正在尝试注释代码,以更好地显示我正在做的事情,重命名变量,删除任何未使用的变量,等等。上帝保佑系统。,但我很快就会发帖,希望今天。,感谢您为safearray所做的工作。,我还在研究极坐标问题,,,我加了z坐标,还有一些问题,我想我在不知不觉中改变了一些其他的东西,所以我要回去。
顺便说一句,poo只是一个随机的小数字,但小的都是相对于dwg,ha。,点原点偏移(如果需要)
回复

使用道具 举报

4

主题

14

帖子

10

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 12:24:49 | 显示全部楼层
 
我猜你以前从未见过我的测试代码,管理员会更改它
令人惊讶的是,一个21岁的男性会立刻想到一些随机变量
 

 
(p.s.抱歉没有建设性)
回复

使用道具 举报

41

主题

301

帖子

265

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
209
发表于 2022-7-6 12:38:27 | 显示全部楼层
好的,希望我已经更好地解释了我的目的,在“PolHole”命令的代码中,我使用了polar命令,我只能在我的电脑上从左向右(0度)运行它。。我检查了“PolarDirection”(用户定义)变量,该变量完美地更新到我选择的任何角度,但线条似乎没有以相同的方式复制和偏移。。。
 
出于好奇,我为“Hole”命令编写了代码。,同样的原理,只需拿出“极轴”命令,缩放和图案填充。。但我从各个角度工作。。。。。亲爱的,我真搞不懂为什么复制和偏移没有达到表面定义的角度。
 
“PolHole”-仅从左向右工作;;在钢连接板中创建孔符号-错误处理程序-(defun*ERROR*(MSG)(setvar“OrthoMode”OrthoSetting)(setvar“PolarMode”PolarSetting)(setvar“CmdEcho”1)(princ MSG)(princ))-结束DEFUN*错误*;======================================================================================================;;_______l___________________________________________________________;;选择l l88l88l使l选择;;该行->l l88l88l EndPointX StartPointX)(setq DifferenceX(-EndPointX StartPointX))(setq DifferenceX(-StartPointX EndPointX));end if(setq DistanceToMidPointX(/(abs DifferenceX)2))(if(>EndPointY StartPointY)(setq DifferenceY(-EndPointY StartPointY))(setq DifferenceY(-StartPointY)));结束if(setq DistanceToMidPointY(/(ABS DifferenceY)2));=========================================================;;这将决定应用中点距离的方向;;====================================================;(cond((EndPointX StartPointX);如果“LineRef”从起始点向右移动(setq DifferenceX(-EndPointX StartpointX));这样做。。。如果向左移动(setq DifferenceX(-StartpointX EndPointX));这样做);结束if(setq DistanceToMidPointX(/(abs DifferenceX)2);得到“x”中绝对差的中间值(如果(>端点开始点);如果“LineRef”从起始点向上移动(setq DifferenceY(-EndPointY StartPoint));这样做。。。如果向下移动(setq DifferenceY(-StartPointY EndPointY));这样做);结束if(setq DistanceToMidPointY(/(ABS DifferenceY)2);得到“y”中绝对差的中间值;这将决定应用中点距离(cond((
回复

使用道具 举报

4

主题

14

帖子

10

银币

初来乍到

Rank: 1

铜币
20
发表于 2022-7-6 12:43:31 | 显示全部楼层
嗨,POOCRAKIN,我的调试方法是,在构建lisp时,让所有变量都是全局的,当它像spected一样运行时,我将其本地化。
此外,我没有使用错误,我完成了lisp。
另外,当进行除法时,注意使用实数作为除数,因此如果除数是整数并且除数太大,则结果将是整数
(/5 2)返回2,(/5 2.0)2.5。
我使用的另一个技巧是对每个变量进行setq。
由于我不知道你想做什么,我不能给你进一步的帮助。
您可以上传一个示例dwg吗?
加布里埃尔。
回复

使用道具 举报

32

主题

430

帖子

423

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
150
发表于 2022-7-6 12:52:06 | 显示全部楼层
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-3 09:04 , Processed in 0.385310 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表