rossfire 发表于 2022-7-6 07:25:21

绘制pol的Autolisp例程

你好
 
我的问题是。我有一个从点列表中绘制多段线的例程。
如果在多段线中放大显示时运行命令,则可以绘制多段线,但如果缩小显示,则绘制多段线不正确,并且大多数顶点都不复杂。我的问题是如何让它好起来,而不管它如何缩放。
请参阅图片和我的lisp例程。
 
谢谢

新lsp

Lee Mac 发表于 2022-7-6 07:45:39

作为一种快速修复方法,更改:
 
(setq ptlist (append ptlist (list(strcat (rtos x) "," (rtos y)))))
 
收件人:
 
(setq ptlist (append ptlist (list "_non" (strcat (rtos x) "," (rtos y)))))

rossfire 发表于 2022-7-6 07:50:02

Thaks Lee!你很棒。
“_non”代表不捕捉,对吗?
问题解决了!

Lee Mac 发表于 2022-7-6 08:09:43

 
正确,“\u non”(或完全:“\u none”)是一个对象捕捉前缀(类似于“\u end”(endpoint)/“\u per”(垂直)/“\u mid”(中点)等),表示在以下点忽略所有对象捕捉模式。
 
至于它的价值,下面是我如何编写程序;使用entmake/entmakex将LWDOLYLINE图元直接添加到图形数据库中比使用命令行在AutoCAD编辑器窗口中以图形方式构建它要快;此外,顶点坐标不受对象捕捉设置的影响。
 
(/f fmax g h i l p1 p2 sigma tgpsi v x y)(if(and(setq p1(getpoint“\n指定第一点:)(setq p2(getpoint”\n指定第二点:“p1))(progn(setq g 35.06 sigma 14.65 l(*5.0(abs(-car p1)(car p2)))h(*0.5(abs(-cadr p1)(cadr p2)))tgpsi(/h l)fmax(/(*l l g)(*8000.0 sigma(cos(atan tgpsi)))f(λ(x)(/(*4.0 fmax(-l x)x)(*l)))i 0.0)(而(

rossfire 发表于 2022-7-6 08:23:04

谢谢李,
我会好好看看的。
当做

Lee Mac 发表于 2022-7-6 08:35:42

 
非常欢迎,如果您对代码有任何问题,请询问。
页: [1]
查看完整版本: 绘制pol的Autolisp例程