jan_ek 发表于 2022-7-5 22:26:00

多边形的创建功能

是否有人试图创建一个命令,根据点的坐标和弯曲半径绘制多段线?这意味着该命令绘制了一条多段线,例如,在附件中,参数是标记在黄色和拱门直径上的点(例如),或者也可以有一条闭合多段线。
我读过关于根据“凸出”计算半径的方法。我不知道该怎么开始-半径应该算什么?
如果您能提供任何帮助或意见,我将不胜感激。

marko_ribar 发表于 2022-7-5 22:53:33

好的,如果您设置了所有维度,那么需要正确的维度数组才能获得正确的点数组-未来的顶点,对于圆弧段,我建议您使用fillet命令-还需要正确的选定维度数组。。。但总的来说,我会手动绘制pline,速度比从sel获取正确数组的速度要快。设置。。。

asos2000 发表于 2022-7-5 23:09:37

如果Rs等于Pline,我们可以输入Pline(附加),然后使用fillit命令
 

(setq obj (entlast))
(command "fillet" "P" "r" 30 obj)

Entmake Min代码CAB。LSP

mostafa badran 发表于 2022-7-5 23:17:25

试试这个

(defun c:test ()
(entmake '((0 . "LWPOLYLINE")
      (100 . "AcDbEntity")
      (8 . "0")
      (100 . "AcDbPolyline")
      (90 . ;Number of vertices
      (10 176.0636632716071 279.6390112374238); 10 =Vertex coordinates (in OCS), multiple entries; one entry for each vertex
      (10 346.0636632716071 279.6390112374238)
      (42 . 0.414213562373095); 42=Bulge (multiple entries; one entry for each vertex) (optional; default = 0)
      (10 376.0636632716071 309.6390112374238)
      (10 376.0636632716071 449.6390112374237)
      (42 . -0.414213562373095)
      (10 406.0636632716071 479.6390112374238)
      (10 568.0354241512509 479.6390112374238)
      (42 . 0.131490546050545)
      (10 583.0188770098191 483.6487026506627)
      (10 821.2389076067196 620.9829165365836)
      (70 . 0);Polyline flag (bit-coded); default is 0: 1 = Closed;
       )
)
(princ)
)                  
HTH
m、 巴德兰

BIGAL 发表于 2022-7-5 23:36:40

上述点列表的微小变化可能来自其他地方execl等。
 
(defun make_sq ()
(setq vertexList (list
(list -3.25 -3.25 0.)
(list 3.25 -3.25 0.)
(list 3.25 3.25 0.)
(list -3.25 3.25 0.)
))
(entmakex
(append
(list '(0 . "LWPOLYLINE")
'(100 . "AcDbEntity")
'(100 . "AcDbPolyline")
(cons 90 (length vertexList))
(cons 70 1); 1 closed : 0 open
(cons 8 "0")
(cons 38 0.0)
(cons 210 (list 0.0 0.0 1.0))
)
(mapcar '(lambda (pt) (cons 10 pt)) vertexList)
)
)
)
页: [1]
查看完整版本: 多边形的创建功能