samifox 发表于 2022-7-5 23:26:30

向数据库添加数据?

你好
我正在学习如何编辑实体列表和更新数据库。如何将成员添加到数据库?什么是字典?
 
Thanx公司
谢伊

MSasu 发表于 2022-7-5 23:30:39

您必须检查ENTMAKE/ENTMAKEX函数;有关相关列表中应该包含的内容,请参阅DXF参考。

samifox 发表于 2022-7-5 23:35:27

我在考虑添加一个层,但不使用命令

MSasu 发表于 2022-7-5 23:38:04

上述建议的解决方案适用于图形数据库中的图形和非图形(即图层、线型定义、样式)条目。请在添加层时检查上一个线程。

samifox 发表于 2022-7-5 23:41:45

使用它而不是命令的真正原因是什么?除了速度之外

Snownut 发表于 2022-7-5 23:43:39

使用entmake,即使实体已经存在,也会重新创建它,因此您需要注意一些事情,例如块。如果你输入一个“块”,没有提示询问你是否真的想这样做,这是一个单独的entmake实际插入到图形“插入”块。
 
真正的好处是,您可以在对话框处于活动状态或在Reactor函数内执行entmake函数。在这两种情况下都不能执行命令。有些东西可能很难制作,比如两条线之间的鱼片半径。具有属性的块是一个捕捉,但将块插入到0,0以外的位置可能会很麻烦,因为需要转换属性位置。我通常对属性为0,0的块进行“插入”,然后使用暂停选项执行命令“移动”,以供用户输入或放置在已知坐标上。使用entmake时,用户输入不会暂停,因此实体不会在屏幕上拖动。
 
尽管大部分时间使用entmake速度更快,但你还是做到了。autocad创建的命令本质上是由autodesk构建的entmake函数。
 
使用entmake的另一个大优点是,您可以将图形窗口中不存在的内容entmake,因此无需缩放或平移。大多数命令要求正在制作或编辑的对象位于现有屏幕视图中。(因此entmake过程对用户来说可能不那么明显,因为缩放等不会导致屏幕闪烁。)

Snownut 发表于 2022-7-5 23:46:14

samifox,
 
请不要开始询问如何使用entmake创建任何实体,除非您在这里或谷歌进行搜索,可以使用entmake创建的99%的项目已经完成,并且可以公开获取。这里是一个很好的参考所有DXF代码需要entmake任何实体。
 
 
http://exchange.autodesk.com/autocad/enu/online-help/browse#WS1a9193826455f5ff18cb41610ec0a2e719-7a04.htm
 

samifox 发表于 2022-7-5 23:50:23

好啊
 
我用这个
 

(defun C:009 ()
(entmake
   (list (cons 0 "LAYER")
(cons 100 "AcDbSymbolTableRecord")
(cons 100 "AcDbLayerTableRecord")
(cons 2 "layer_name2")
(cons 70 0)
(cons 62 2)
   )
)
)

 
现在我想修改图层颜色,
如果我用相同的层名称重新调用相同的entmake,则得到零
 
如何更新?

Tharwat 发表于 2022-7-5 23:53:11

看看这个。
 

(defun LayerMake (clr name)
(if (and (< -1 clr 257)
          (snvalid name)
          (not (tblsearch "LAYER" name))
   )
   (entmake
   (list '(0 . "LAYER")
         '(100 . "AcDbSymbolTableRecord")
         '(100 . "AcDbLayerTableRecord")
         '(70 . 0)
         (cons 2 name)
         (cons 62 clr)
   )
   )
)
)

samifox 发表于 2022-7-5 23:57:43

 
你好
 
 
 
该代码阻止创建层(如果存在),但不更新现有层,对吗?
 
其次,在我的代码中,我没有使用引号,因为数字是自动生成的,在你的代码中,你确实使用了引号,为什么它首先会工作?
页: [1] 2
查看完整版本: 向数据库添加数据?